淘优惠

淘优惠

7个有助于ai技术的最佳开源工具 使用ai的实战方法论做好这5个步骤

热门文章 0
ai的特点与功能,AI技术的作用,ai技术的重要性,AI技术的运用

原本链接:

本文,InfoQ梳理了60个2019年至今GitHub上热门的开源工具,献给那些对新征程满怀期待的开发者们。

2018 年是 NLP 井喷的一年。像 ELMo 和谷歌 BERT 这样的库层出不穷,正如 Sebastian Ruder 所言,“NLP 高光时刻已经来临”,并且这种趋势一直延续到了 2019 年。Flair 是另一款出色的 NLP 库,技术先进、简单易懂、操作方便。

Flair 由 Zalando Research 开发及开源,是基于 Pytorch 的 NLP 框架。Flair 允许用户将最先进的自然语言处理模型应用于文本,例如命名实体识别(NER),词性标注(PoS),意义消歧和分类。

项目地址:

如今,计算机视觉中人脸识别算法在数据科学领域应用极为广泛。face.evoLVe 是一款基于 Pytorch 的“高性能人脸识别库”。为相关人脸分析和应用提供了综合功能,包括:

  • 人脸对齐(人脸检测、特征点定位、仿射变换等);

  • 数据预处理(例如,数据增广、数据平衡、归一化等);

  • 各种骨干网(例如,ResNet、IR、IR-SE、ResNeXt、SE-ResNeXt、DenseNet、LightCNN、MobileNet、ShuffleNet、DPN等);

  • 各种损失函数(例如,Softmax、Focal、Center、SphereFace、CosFace、AmSoftmax、ArcFace、Triplet等等);

  • 提高性能的技巧包(例如,训练改进、模型调整、知识蒸馏等)。

简而言之,该库可以帮助研究人员和工程师快速开发高性能深度人脸识别模型和算法,方便实际使用和开发部署。

项目地址:

YOLO 是一款超快、超精准目标检测框架。 自发布以来迭代更新的几个版本一次比一次更好。

该库是 YOLOv3 在 TensorFlow 中实现的完整数据管道。它可用在数据集上来训练和评估自己的目标检测模型。其核心亮点包括:

  • 有效的tf.数据管道

  • 重量转换器

  • 极速GPU 非极大值抑制

  • 全训练管道

  • K-means算法选择Anchor先验框

项目地址:

计算机视觉领域最大的挑战之一就是掌握计算资源,不是每个人都有多个 GPU。

FaceBoxes 是一种新的人脸检测方法,使用 CPU 速度和精准度均表现良好。FaceBoxes 通过 PyTorch 实现。包含安装、训练和评估人脸检测模型的代码。

项目地址:

Transformer-XL 是由谷歌 AI 团队开源的 NLP 模型 Transformer 的升级版。建模长期依赖关系是 NLP 领域的棘手问题。RNN 和 Vanilla Transformers 也常被用来建模长期依赖关系,但效果都并不理想。谷歌 AI 团队开发的 Transformer-XL 解决了这一问题。这款库的亮点包括:

  • Transformer-XL学习的长期依赖关系比RNN长约80%,比vanilla长约450%

  • Transformer-XL在语言建模任务的评估期间比vanilla Transformer快1800多倍。

  • 基于建模长期依赖关系的能力,Transformer-XL在长序列上具有更好的困惑度(在预测样本方面更准确)。

项目地址:

下图这些人看起来是不是很逼真?但他们其实并不是真人。这些“人脸”都是由 StlyeGAN 算法生成的。近几年 GAN 热度不减,但是 StyleGAN 在某些方面甚至优于 GAN。

虽然 GANs 自发明以来一直在稳步改进,但 StyleGAN 的进程仿佛更快些。开发人员提出了两种新的、自动化方法来量化这些图像的质量,同时也开放了大量高质量的人脸数据集。

关键资源如下:

项目地址:

OpenAI 今年 11 月终于发布了 15 亿参数完整版本 GPT-2。这款语言模型被不少人认为是 2019 年“最强通用 NLP 模型”。

GPT-2 可以生成连贯的文本段落,刷新了 7 大数据集基准,并且能在未经预训练的情况下,完成阅读理解、问答、机器翻译等多项不同的语言建模任务。

项目地址:

SC-FEGAN 听起来像另一款 GAN 库,没错,这的确是基于 GAN 的人脸照片涂鸦编辑。SC-FEGAN 与 StyleGAN 的算法一样出色。

你可以用开发者训练好的深度神经网络来编辑所有类型的人脸照片。SC-FEGAN 非常适合使用直观的用户输入与草图和颜色生成高质量的合成图像。

项目地址:

LazyNLP 的使用门槛很低――用户可以使用它爬网页、清洗数据或创建海量单语数据集。

据开发者称,LazyNLP 可以让你创建出大于 40G 的文本数据集,比 OpenAI 训练 GPT-2 时使用的数据集还要大。

项目地址:

是不是经常会因为字幕与视频不同步而抓狂?这个库能解决这一问题。Subsync 能使字幕与视频自动同步(与哪种语言无关),字幕与视频中的正确起始点对齐。该算法是在 Python 快速傅里叶变换技术上建立的。

Subsync 在 VLC 媒体播放器中同样表现出色。该模型的训练时间只需 20 到 30 秒(取决于视频长度)。

从这样

变成这样

FFHQ:Style-GAN 论文中用于训练生成逼真人脸的数据集,分辨率 1024×1024 的 70,000 张高质量 PNG 图像,在年龄,种族和图像背景方面存在广泛差异。

项目地址:

Style-GAN 论文中用于训练生成逼真人脸的数据集,包含 7 万张分辨率 1024×1024 的高质量 PNG 图像,各年龄段、各种族人群都有,图像背景也各不相同。

项目地址:

不少人对计算机视觉着迷都是因为 GAN。GAN 是几年前由 Ian Goodfellow 发明的,现在已经发展成一个完整的研究体系。

2018 年 DeepMind 提出了 BigGAN 概念,但是等了很久才等到 BigGAN 的 PyTorch 实现。这款库也包含了预训练模型(128×128、 256×256 以及 512×512)。仅需一行代码就可安装:

          
复制代码

项目地址:

SPADE 是英伟达(NVIDIA)新开源的绘图工具。利用生成对抗网络,根据几根简单的线条就能生成栩栩如生的图像。

项目地址:

这款库是基于《Fast Online Object Tracking and Segmentation: A Unifying Approach》论文提出的。

SiamMask 是一款实时在线目标跟踪与目标分割统一框架。技术简单、通用、快速高效。它可以对目标实时跟踪。此款库还包含预训练模型。

项目地址:

ARM GPU 上的深度学习视频处理监控,用于人脸识别以及更多方法。将数码相机变成人工智能相机。使用 ARM GPU / NPU 的边缘 AI 生产级平台,利用 AutoML。面向开发人员/儿童/家庭/中小企业/企业/云的第一个世界级边缘人工智能全栈平台,由社区烘焙。

整个 DeepCamera 概念基于自动机器学习(AutoML),所以训练新模型甚至不需要任何编程经验。

主要亮点:

  • 人脸识别

  • 人脸检测

  • 通过移动程序控制

  • 目标检测

  • 运动检测

Sparse Transformer 是一款预测序列中一下项的深度神经网络。它包含文本、图片甚至音频。该算法使用深度学习中非常流行的注意力机制从序列中提取模式的时长是以前的 30 倍。

OpenAI 提出的这款模型可以使用数百个层对数万个元素的序列进行建模,在多个域中实现先进的性能。

项目地址:

NeuronBlocks 是一款由微软开发的 NLP 入门工具包。可以帮助数据科学团队创建端到端神经网络通道。这款工具包的设计初衷是为了减少为 NLP 任务创建深度学习网络模型的成本。

CenterNet 是一种目标探测方法。总体来讲,探测算法是在图像上将目标以轴对称的框形式框出。大多成功的目标检测器都先观察出目标位置,然后对该位置进行分类,这些方法听起来似乎很合理,但是实际上还需要进行后期处理。

CenterNet 这种方法构建模型时将目标作为一个点。基本上讲,检测器采用关键点评估的方式来识别所有框中的中心点。CenterNet 已经被证明比我们从前了解的其他边界框技术更快、更精准。

项目地址:

了解并学习如何部署机器学习模型成为数据科学家必须掌握的技能。BentoML 是一款为数据科学家设计的 Python 库,帮助他们包装和部署机器学习模型。这款工具包可以让你在 5 分钟内将笔记本上的模型走向生产 API 服务。BentoML 服务可以很容易地部署到众多主流平台上,例如 Kubernetes、Docker、Airflow、AWS、Azure 等。

项目地址:

InterpretML 是由微软开源的用于训练可解释模型和解释黑箱系统的包。可解释性在以下几个方面至关重要:

调试模型:为什么我的模型会出错?

检测偏见:我的模型会区别对待目标吗?

人类与 AI 合作:我怎样才能理解和信任模型的决策?

合规性:我的模型符合法律规定吗?

高风险应用:医疗健康、金融、司法等…

微软研究人员开发可解释增强机(EBM)算法帮助提高可解释性。此 EBM 技术有较高的精准度和可理解性。Interpret ML 不仅局限于使用 EBM 算法,它同样支持 LIME、线性模型和决策树等方法。

可使用下列代码安装 InterpretML:

          
复制代码

项目地址:

Tensor2Robot (T2R) 是一款用于大规模深度神经网络训练、评估和推理的库。此存储库包含分布式机器学习和强化学习基础结构。

项目地址:

这是一个在 Tensorflow 2 中实现大量生成模型的小项目。图层和优化器都是使用 Keras。这些模型是针对两个数据集实现的:fashion MNIST 和 NSYNTH。编写网络的目的是尽可能简单和一致,同时具有可读性。因为每个网络都是自包含在 notebook 中的,所以它们应该可以在 colab 会话中轻松运行。

该存储库包含多个生成模型的 TF 实现,包括:

  • 生成对抗网络(GAN)

  • 自动编码器

  • 变分自动编码器(VAE)

  • VAE-GAN等

STUMPY 是一个功能强大且可扩展的 Python 库,可用于各种时间序列数据挖掘任务。

STUMPY 旨在计算矩阵轮廓,矩阵轮廓是一个向量,它存储时间序列中任何子序列与其最近邻居之间的 z-normalized 欧几里德距离。

以下是此矩阵配置文件帮助我们执行的一些时间序列数据挖掘任务:

  • 异常发现

  • 语义分割

  • 密度估计

  • 时间序列链(时序有序的子序列模式集)

使用以下代码可以通过 pip 直接安装 STUMPY:

          
复制代码

项目地址:


计算机视觉相关最新论文 近五年计算机视觉方面的文章

计算机视觉相关技术,计算机视觉相关书籍,计算机视觉相关论文,计算机视觉相关课程

2021 年排名前 10 的计算机视觉论文,包括视频演示、文章、代码和论文参考。

世界的经济活动在病毒的冲击下陷入了历史罕见的停滞中,但研究并没有放慢其狂热的步伐,尤其是在人工智能领域。今年的论文中除了一般的研究结果外还强调了许多重要方面,例如道德方面、重要偏见、治理、透明度等等。人工智能和我们对人脑及其与人工智能的联系的理解不断发展,显示出在不久的将来改善我们生活质量的有前景的应用。不过,我们应该谨慎选择应用哪种技术。

“科学不能告诉我们应该做什么,只能告诉我们可以做什么。”―― Jean-Paul Sartre, Being and Nothingness

以下是我总结的今年计算机视觉领域最有趣的 10 篇研究论文,简而言之,它基本上是一个精选的 AI 和 CV 最新突破列表,本篇文章将带有清晰的视频解释和代码(如果有)。本文末尾列出了对每篇论文的完整参考。如果还有什么推荐,请直接联系我。

OpenAI 成功训练了一个能够从文本标题生成图像的网络。它与 GPT-3 和 Image GPT 非常相似,并产生了惊人的结果。

代码:https://github.com/openai/DALL-E

将 GAN 和卷积方法的效率与Transformers 的表达能力相结合,为语义引导的高质量图像合成提供了一种强大且省时的方法。

代码:https://github.com/CompVis/taming-transformers

Transformers 会取代计算机视觉中的 CNNs 吗?在不到 5 分钟的时间内,通过一篇名为 Swin Transformer 的新论文了解如何将 Transformer 架构应用于计算机视觉。

代码:https://github.com/microsoft/Swin-Transformer

视图合成的下一步:目标是拍摄一张图像,然后就可以进到图像中去探索风景!

DEMO:https://colab.research.google.com/github/google-research/google-research/blob/master/infinite_nature/infinite_nature_demo.ipynb#scrollTo=sCuRX1liUEVM

根据添加的新背景的亮度重新为肖像补光。你有没有想过改变图片的背景,但让它看起来很逼真?如果已经尝试过就会知道这并不简单。你在家里拍一张自己的照片然后改变成海滩的背景, 任何人都会在一秒钟内说“那是经过Photoshop处理的”。对于电影和专业视频,需要完美的灯光和艺术家来再现高质量的图像,这非常昂贵。你无法用自己的照片做到这一点。但是这篇论文做到了

该模型只通过拍摄一张照片,就能够了解哪些粒子应该在移动,并可以在限循环中为它们设置逼真的动画,同时完全保留图片的其余部分,这样我们可以将图片转换成动画……

代码:https://eulerian.cs.washington.edu/

使用修改后的 GAN 架构,他们可以在不影响背景或其他对象的情况下移动图像中的对象!

代码:https://github.com/autonomousvision/giraffe

TimeLens 可以理解视频帧之间粒子的运动,用我们肉眼看不到的速度重建真正发生的事情。它达到了智能手机和其他机型无法达到的效果!

代码:https://github.com/uzh-rpg/rpg_timelens

你有没有想过把照片的风格,比如左边这个很酷的绘画风格,应用到你选择的新照片上?这个模型能够做到,甚至可以仅从文本中实现这一点,并且还提供了可以立即尝试使用这种新方法及其适用于所有人的 Google Colab 。简单的拍一张你要复制的样式的图片,输入你要生成的文字,这个算法就会生成一张新的图片!结果非常令人印象深刻,特别它们可以由一行文本制成的!

DEMO:https://colab.research.google.com/github/kvfrans/clipdraw/blob/main/clipdraw.ipynbhttps://colab.research.google.com/github/pschaldenbrand/StyleCLIPDraw/blob/master/Style_ClipDraw.ipynb

该模型称为 CityNeRF,是从 NeRF 发展而来的, NeRF 是最早使用辐射场和机器学习从图像构建 3D 模型的模型之一。但 NeRF 效率不高而且只适用于单一规模。在这里,CityNeRF 同时应用于卫星和地面图像,生成各种 3D 模型。简而言之他们将 NeRF 带入了城市规模。

代码:https://city-super.github.io/citynerf/

[1] A. Ramesh et al., Zero-shot text-to-image generation, 2021. arXiv:2102.12092

[2] Taming Transformers for High-Resolution Image Synthesis, Esser et al., 2020.

[3] Liu, Z. et al., 2021, “Swin Transformer: Hierarchical Vision Transformer using Shifted Windows”, arXiv preprint https://arxiv.org/abs/2103.14030v1

[bonus] Yuille, A.L., and Liu, C., 2021. Deep nets: What have they ever done ?for vision?. International Journal of Computer Vision, 129(3), ?pp.781C802, https://arxiv.org/abs/1805.04025.

[4] Liu, A., Tucker, R., Jampani, V., Makadia, A., Snavely, N. and ?Kanazawa, A., 2020. Infinite Nature: Perpetual View Generation of ?Natural Scenes from a Single Image, https://arxiv.org/pdf/2012.09855.pdf

[5] Pandey et al., 2021, Total Relighting: Learning to Relight Portraits ?for Background Replacement, doi: 10.1145/3450626.3459872, https://augmentedperception.github.io/total_relighting/total_relighting_paper.pdf.

[6] Holynski, Aleksander, et al. “Animating Pictures with Eulerian Motion ?Fields.” Proceedings of the IEEE/CVF Conference on Computer Vision and ?Pattern Recognition. 2021.

[7] Michael Niemeyer and Andreas Geiger, (2021), “GIRAFFE: Representing ?Scenes as Compositional Generative Neural Feature Fields”, Published in ?CVPR 2021.

[8] Stepan Tulyakov, Daniel Gehrig, Stamatios Georgoulis, Julius Erbach, ?Mathias Gehrig, Yuanyou Li, Davide Scaramuzza, TimeLens: Event-based ?Video Frame Interpolation, IEEE Conference on Computer Vision and ?Pattern Recognition (CVPR), Nashville, 2021, http://rpg.ifi.uzh.ch/docs/CVPR21_Gehrig.pdf

[9] a) CLIPDraw: exploring text-to-drawing synthesis through language-image encodersb) StyleCLIPDraw: Schaldenbrand, P., Liu, Z. and Oh, J., 2021. ?StyleCLIPDraw: Coupling Content and Style in Text-to-Drawing Synthesis.

[10] Xiangli, Y., Xu, L., Pan, X., Zhao, N., Rao, A., Theobalt, C., Dai, B. ?and Lin, D., 2021. CityNeRF: Building NeRF at City Scale.

本文作者:Louis Bouchard


pytorch和tensorflow干什么的 keras pytorch tensorflow区别

pytorch和tensorflow哪个简单,pytorch和tensorflow可以一起装吗,pytorch和tenserflow,pytorch有啥用

快到 2022 了,你是选 PyTorch 还是 TensorFlow?

之前有一种说法:TensorFlow 适合业界,PyTorch 适合学界。这种说法到 2022 年还成立吗?在这篇文章中,作者从模型可用性、部署便捷度和生态系统三个方面对比了两个框架的优缺点,并针对不同身份的读者给出了不同的选择建议。

模型可用性对比:PyTorch 胜出

在模型可用性方面,PyTorch 和 TensorFlow 表现出了明显的区别。它们都有自己的官方模型库,但是对于从业者来说,这些库里的模型可能还不够。因此,我们有必要比较一下这两个框架官方模型库之外的模型来源是否丰富。HuggingFace

HuggingFace 的存在使得深度学习从业者仅借助几行代码就能将训练、微调好的 SOTA 模型整合到其 pipeline 中。下图显示了两个框架的 HuggingFace 模型可用情况。从图中看出,HuggingFace 中大约有 85% 的模型只能在 PyTorch 上用,剩下的模型还有一半也可以在 PyTorch 上用。相比之下,只有 16% 的模型能在 TensorFlow 上用,只有 8% 是 TensorFlow 所独有的。

如果把范围缩小到 HuggingFace 上最受欢迎的 30 个模型,我们可以看到类似的结果。在这 30 个模型中,能在 TensorFlow 上用的还不到 2/3,但能在 PyTorch 上用的却达到了 100%,没有哪个模型只能在 TensorFlow 上用。

研究论文对于研究者来说,从最近发表的论文中获取模型是非常重要的,它可以让你专注于其他重要的工作。尝试在不同的框架中重新创建新的模型会浪费宝贵的时间。 考虑到 PyTorch 实际上是一个研究型框架,作者预期在 HuggingFace 上观察到的趋势会蔓延至整个社区,结果不出所料。 如下图所示,作者汇总了 8 个顶级研究期刊上的论文在过去几年里的框架采用情况。结果显示,PyTorch 的采用率增长迅速,几年时间就从原来的 7% 长到了近 80%。

PyTorch 的这种增长势头很大程度上是拜 TensorFlow 所赐。很多转向 PyTorch 的研究者都表示 TensorFlow 1 太难用了。尽管 2019 年发布的 TensorFlow 2 改掉了一些问题,但彼时,PyTorch 的增长势头已经难以遏制。 如果看一下那些中途换框架的研究者的比例,我们也可以得出类似的结论。如下图所示,在 2018 年还在用 TensorFlow 的论文作者中,有 55% 的人在 2019 年转向了 PyTorch,但 2018 年就在用 PyTorch 的人有 85% 都留了下来。

Papers with Code最后我们来看一下 Papers with Code 网站。在这一部分,作者绘制了使用 PyTorch、TensorFlow 或其他框架的论文随时间变化的比例。从中可以看出,使用 PyTorch 的论文在稳步增长:在本季度创建的 4500 个库中,有 60% 是在 PyTorch 中实现的,只有 11% 是在 TensorFlow 中实现的。相比之下,TensorFlow 的使用率在稳步下降,2019 年 TensorFlow 2 的发布也没有扭转这一趋势。

小结从以上数据可以明显看出,PyTorch 目前在研究领域占据主导地位。虽然 TensorFlow 2 解决了研究者使用该框架进行研究的一些痛点,但 PyTorch 却没有给研究者回头的理由。此外,TensorFlow 两大版本之间的向后兼容性问题只会让这种趋势愈演愈烈。

当然,这里还有几个例外需要注意:

Google AI:谷歌发布的论文自然会用 TensorFlow。鉴于在论文方面谷歌比 Facebook 更高产,一些研究者可能会发现掌握 TensorFlow 还是很有用的。 DeepMind:DeepMind 也用 TensorFlow,而且也比 Facebook 高产。他们创建了一个名叫 Sonnet 的 TensorFlow 高级 API,用于研究目的。有人管这个 API 叫「科研版 Keras」,那些考虑用 TensorFlow 做研究的人可能会用到它。此外,DeepMind 的 Acme 框架可能对于强化学习研究者很有用。

OpenAI:OpenAI 在 2020 年宣布了全面拥抱 PyTorch 的决定。但他们之前的强化学习基线库都是在 TensorFlow 上部署的。基线提供了高质量强化学习算法的实现,因此 TensorFlow 可能还是强化学习从业者的最佳选择。 JAX:谷歌还有另一个框架――JAX,它在研究社区中越来越受欢迎。与 PyTorch 和 TensorFlow 相比,JAX 的开销要小得多。但同时,JAX 和前两个框架差别也很大,因此迁移到 JAX 对于大多数人来说可能并不是一个好选择。目前,有越来越多的模型 / 论文已经在用 JAX,但未来几年的趋势依然不甚明朗。 所以总体来看,在第一轮(模型可用性)的对比中,PyTorch 完胜。

部署便捷性对比:TensorFlow 胜出从一开始,TensorFlow 就是一个面向部署的首选框架,因为它有一系列可以提高端到端深度学习效率的工具,比如 TensorFlow Serving 和 TensorFlow Lite。 相比之下,PyTorch 在部署方面一度表现平平,但近年来,它也在努力缩小这一差距。去年推出的 TorchServe 和前几周推出的 PyTorch Live 为用户提供了急需的本地部署工具。但二者之间的差距还有多大?我们来看进一步的分析。小结目前,TensorFlow 依然在部署方面占有优势。Serving 和 TFLite 比 PyTorch 的同类型工具要稳健一些。

而且,将 TFLite 与谷歌的 Coral 设备一起用于本地 AI 的能力是许多行业的必备条件。相比之下,PyTorch Live 只专注于移动平台,而 TorchServe 仍处于起步阶段。因此综合来看,第二轮(部署便捷性)的胜出者是 TensorFlow。 如果你既想用 TensorFlow 的部署基础设施,又想访问只能在 PyTorch 中使用的模型,作者推荐使用 ONNX 将模型从 PyTorch 移植到 TensorFlow。

生态系统对比:TensorFlow 胜出2022 年,将 PyTorch 和 TensorFlow 分开考虑,一个重要的因素是它们所处的生态系统不同。PyTorch 和 TensorFlow 都提供了易于部署、管理、分布式训练的工具,从建模的角度讲都是能力很强的框架。相比之下,它们在生态系统方面的差异更重要。

PyTorch Hub: PyTorch Hub 作为面向研究的官方平台,用于与预训练模型共享存储库。Hub 拥有广泛类别的模型,包括用于音频、视觉、NLP 任务的模型,还有用于生成任务的 GAN 模型。

SpeechBrain:SpeechBrain 是 PyTorch 的官方开源语音工具包。SpeechBrain 能够完成自动语音识别(ASR)、说话人识别、验证和分类等任务。如果你不想构建任何模型,而是想要一个具有情感分析、实体检测等功能的即插即用工具,你可以选择使用 AssemblyAI 的 Speech-to-Text API。 当然,PyTorch 的工具页面还有很多其他有用的库,包括为计算机视觉和自然语言处理量身定制的库,例如 fast.ai。

TorchElastic: TorchElastic 是 AWS 和 Facebook 2020 年联合发布的分布式训练工具,可管理工作进程并协调重启行为,以便用户在计算节点集群上训练模型,这些节点可以动态变化而不会影响训练。因此,TorchElastic 可防止因服务器维护或网络问题等导致的灾难性故障,不会丢失训练进度。TorchElastic 具有与 Kubernetes 集成的特性,并已集成到 PyTorch 1.9+ 中。

TorchX:TorchX 是一个用于快速构建和部署机器学习应用程序的 SDK。TorchX 包括 Training Session Manager API,可在支持的调度程序上启动分布式 PyTorch 应用程序。TorchX 负责启动分布式作业,同时原生支持由 TorchElastic 局部管理的作业。

Lightning:PyTorch Lightning 有时被称为 PyTorch 的 Keras。虽然这种类比并不准确,但 Lightning 的确是简化 PyTorch 中模型工程和训练过程的有用工具,自 2019 年首次发布以来已经逐渐趋于成熟。Lightning 以面向对象的方式处理建模过程,定义了可重用和可跨项目使用的可共享组件。TensorFlowHub: TensorFlow Hub 是一个经过训练的机器学习模型库,可以进行微调,让用户只需几行代码就能使用像 BERT 这样的模型。Hub 包含适用于不同用例的 TensorFlow、TensorFlow Lite 和 TensorFlow.js 模型,可用于图像、视频、音频和文本处理。

Model Garden:如果现成的预训练模型不适用于用户的应用,那么 TensorFlow 的存储库 Model Garden 可以提供 SOTA 模型的源代码。对于想要深入了解模型工作原理,或根据自己的需要修改模型的用户,Model Garden 将非常有用。 Model Garden 包含谷歌维护的官方模型、研究人员维护的研究模型和社区维护的精选社区模型。TensorFlow 的长期目标是在 Hub 上提供来自 Model Garden 的模型的预训练版本,并使 Hub 上的预训练模型在 Model Garden 中具有可用的源代码。

Extended(TFX):TensorFlow Extended 是 TensorFlow 用于模型部署的端到端平台。该平台的功能强大,包括:加载、验证、分析和转换数据;训练和评估模型;使用 Serving 或 Lite 部署模型;跟踪 artifact 及其依赖项。TFX 还可以与 Jupyter 或 Colab 一起使用,并且可以使用 Apache Airflow/Beam 或 Kubernetes 进行编排。TFX 与 Google Cloud 紧密集成,可与 Vertex AI Pipelines 一起使用。

Vertex AI:Vertex AI 是 Google Cloud 今年刚刚发布的统一机器学习平台,旨在统一 GCP、AI Platform 和 AutoML,成为一个平台。Vertex AI 能够以无服务器方式编排工作流,帮助用户自动化、监控和管理机器学习系统。Vertex AI 还可以存储工作流的 artifact,让用户可以跟踪依赖项和模型的训练数据、超参数和源代码。 Coral: 尽管有各种各样的 SaaS 公司依赖基于云的人工智能,但许多行业对本地人工智能的需求也在不断增长,Google Coral 就是为了满足这一需求而创建的。Coral 是一个完整的工具包,可以使用本地 AI 构建产品。

Coral 于 2020 年发布,解决了部署部分 TFLite 中提到的实现板载 AI 的问题,克服了隐私和效率等方面的困难。 Coral 提供了一系列用于原型设计、生产和传感的硬件产品,其中一些本质上是增强型的树莓派,专为 AI 应用程序创建,能够利用 Edge TPU 在低功耗设备上进行高性能推理。Coral 还提供用于图像分割、姿态估计、语音识别等任务的预编译模型,为希望创建本地 AI 系统的开发人员提供支持。创建模型的基本步骤如下面的流程图所示。

TensorFlow.js 是一个用于机器学习的 JavaScript 库,允许用户使用 Node.js 在浏览器和服务器端训练和部署模型。Cloud:TensorFlow Cloud 是一个可以将本地环境连接到 Google Cloud 的库,它的 API 旨在弥补本地机器上模型构建和调试与 GCP 上分布式训练和超参数调整之间的差距,而无需使用 Cloud Console。

Colab:Google Colab 是一个基于云的 notebook 环境,与 Jupyter 非常相似。Colab 易于连接到 Google Cloud 进行 GPU 或 TPU 训练,并且 Colab 还可以和 PyTorch 一起使用。

Playground:Playground 是一个小而精致的可视化工具,用于帮助用户理解神经网络的基础知识。要户可以更改 Playground 内置神经网络的层数和大小,以实时查看神经网络是如何学习特征的,用户还可以看到改变学习率和正则化强度等超参数如何影响不同数据集的学习过程。Playground 允许实时播放学习过程,以高度直观的方式查看输入在训练过程中是如何转换的。Playground 还提供了一个开源的小型神经网络库,是它自身的构建基础,用户能够查看其源代码的具体细节。

Datasets:谷歌研究院的 Datasets 是谷歌定期发布的数据集的整合资源。谷歌还提供了数据集搜索以访问更广泛的数据集资源。当然,PyTorch 用户也可以利用这些数据集。

小结总的来说,尽管 PyTorch 和 TensorFlow 有很多相似和共享的资源,但在生态系统方面,终究是 TensorFlow 更胜一筹。谷歌投入巨资确保深度学习的每个相关领域都有完善的产品。与 Google Cloud 和 TFX 的紧密集成使端到端的开发过程变得轻而易举,而将模型移植到 Google Coral 设备的便利性让 TensorFlow 在某些行业取得了压倒性的胜利。

应该选 PyTorch 还是 TensorFlow?正如期望的那样,PyTorch 与 TensorFlow 还没有决出明确的胜负。只能说,某一个框架在特定用例方面是优于另一个框架的。为了帮助读者做出选择,作者汇总了一些建议。在下面的流程图中,每个图表都针对不同的兴趣领域量身定制。

如果我在业界怎么办?

如果在工业界执行深度学习工程任务,你很可能会使用 TensorFlow,并且应该坚持使用它。对于需要将模型投入生产的人来说,TensorFlow 强大的部署框架和端到端的 TensorFlow Extended 平台是很珍贵的。能在 gRPC 服务器上进行轻松部署以及模型监控和工件跟踪是行业应用的关键。

鉴于 PyTorch 最近发布了 TorchServe,如果你需要访问仅在 PyTorch 中可用的 SOTA 模型,那也可以考虑使用 PyTorch。在这种情况下,请考虑使用 ONNX 在 TensorFlow 的部署工作流中部署转换后的 PyTorch 模型。 如果你正在构建移动应用,鉴于 PyTorch 最近发布了 PyTorch Live,可以考虑使用 PyTorch。如果你需要音频或视频输入,在这种情况下还是应该使用 TensorFlow。如果你正在构建使用 AI 的嵌入式系统或 IoT 设备,鉴于 TFLite + Coral 生态系统,你仍然应该使用 TensorFlow。

总之,在工业界,如果必须选择一种框架,请选择 TensorFlow。

如果我是研究者怎么办?

如果是一名研究人员,你大概率会使用 PyTorch,你应该坚持使用它,大多数 SOTA 模型都适用于 PyTorch。当然,这条规则有几个值得注意的例外,最值得注意的是:强化学习领域的一些研究应该考虑使用 TensorFlow。TensorFlow 有一个用于强化学习的原生 Agents 库,并且 DeepMind 的 Acme 框架是在 TensorFlow 中实现的。OpenAI 的 baseline 模型存储库也是在 TensorFlow 中实现的,尽管 OpenAI 的 Gym 在 TensorFlow 或 PyTorch 中都能使用。如果你打算使用 TensorFlow 进行研究,还应该查看 DeepMind 的 Sonnet 以获得更高级别的抽象。

如果不想使用 TensorFlow,比如你正在做 TPU 训练,那