始于TensorFlow ,终于PyTorch

北慕城南 提交于 2021-02-11 03:19:39

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达


作者 | Scott Carey
译者 | Sambodhi
策划 | 刘燕
转自 | AI前线
为什么这三家公司最终都不约而同地放弃 TensorFlow ,而转向了 PyTorch?

本文最初发表于 InfoWorld,经 InfoWorld 授权,InfoQ 中文站翻译并分享。

深度学习框架 PyTorch 凭借其相对易用性,已经渗透到了企业中。本文提到的三家公司告诉我们,为什么他们选择 PyTorch 而不是 Google 著名的 TensorFlow 框架。

深度学习 是机器学习的一个子类别,它使用多层神经网络将历史上很难完成的机器任务——比如 图像识别、自然语言处理 和 机器翻译——实现大规模自动化。

自 2015 年以来,TensorFlow 就从 Google 中脱颖而出,在研究和商业领域成为最受欢迎的开源深度学习框架。但是 2016 年从 Facebook 诞生的 PyTorch 由于社区推动的易用性改进和越来越广泛的用例部署,而迅速 赶上TensorFlow。

在汽车行业,PyTorch 的应用尤为广泛——它可以应用于 Tesla 和 Lyft Level 5 等公司的实验性自动驾驶系统。该框架也被媒体公司用来对内容进行分类和推荐,并在工业应用中支持机器人。

Facebook AI 的人工智能产品主管 Joe Spisak 告诉 InfoWorld,虽然他对企业采用 PyTorch 的人数增加感到高兴,但要扩大行业应用范围,还有很多工作要做。

“MLOps 和 Kubeflow 管道以及这些社区的支持将会带来新一轮的采用浪潮,”他说。“对于那些刚起步的人来说,这些工具都相当不错,它们使用了托管服务和一些开源的东西,比如 AWS 的 SageMaker 或 Azure ML。”

Disney:识别电影中的动画面孔

自 2012 年以来,媒体巨头 Disney 的工程师和数据科学家一直在构建该公司所谓的“内容基因组”(Content Genome)的知识图谱,将内容元数据聚合在一起,从而推动 Disney 庞大的内容库中基于机器学习的搜索和个性化应用。

“这个元数据改进了 Disney 故事讲述者用于制作内容的工具;激发故事中的迭代创新;通过推荐引擎,数字导航和内容发现提高用户体验;并实现了商业智能。”Disney 的开发人员 Miquel±ngel Farré、Anthony Accardo、Marc Junyent、Monica Alfaro 和 Cesc Guitart 在 今年 7 月的一篇博客文章 中写道。

在这之前,Disney 不得不投资一个庞大的内容注释项目,求助于其数据科学家,利用深度学习的图像识别模型,训练一个自动化标记管道,以识别海量的人物,地点和地点图像。

Disney 的工程师们最初尝试了包括 TensorFlow 在内的各种框架,但在 2019 年,他们决定将 PyTorch 与之结合起来。工程师们从传统的 方向梯度直方图(histogram of oriented gradients,HOG)特征描述器和流行的 支持向量机(support vector machines,SVM)模型,转向了被称为 基于区域卷积神经网络(regions with convolutional neural networks,R-CNN)的目标检测架构版本。在处理 Disney 内容中常见的真人动作、动画和视觉效果的组合时,后者更为有利。

“在动画片中很难定义什么是人脸,所以我们转向深度学习方法,使用目标检测器,并使用迁移学习。”Disney 研究工程师 Monica Alfaro 向 InfoWorld 解释道。在仅仅处理了几千张人脸之后,新模型已经能够大致识别所有三种用例中的人脸。它于 2020 年 1 月投入生产。

她表示:“我们现在只使用一种模型来识别三种类型的人脸,这对于像《复仇者联盟》这样的漫威电影来说是很棒的。因为在这类电影中,钢铁侠和 Tony Stark 或者任何一个戴面具的角色都需要被识别出。”

由于工程师要处理如此大量的视频数据以并行地训练和运行模型,所以他们也希望在投入生产阶段时,能够运行在昂贵的高性能 GPU 上。

从 CPU 的转变让工程师可以更快地重新训练和更新模型。它还加快了向 Disney 各个小组分发测试结果的速度,将处理时间从一部长篇电影的大约一个小时缩短到今天的 5 到 10 分钟。

“TensorFlow 目标检测器在生产环境中会存在内存问题,并且很难更新;而 PyTorch 有同样的目标检测器和 Faster-RCNN,因此我们开始使用 PyTorch 来解决所有的问题。”Alfaro 说。

对工程团队来说,这种从一个框架到另一个框架的转换也出奇地简单。“(改用 PyTorch)很容易,因为它都是内置的,你只需要插入一些功能,就可以快速上手,所以它的学习曲线并不陡峭。”Alfaro 说。

当他们遇到任何问题或瓶颈时,充满活力的 PyTorch 社区随时提供帮助。

Blue River Technology:除草机器人

Blue River Technology 设计了一款机器人,这种机器人结合了数字寻路、集成摄像头和计算机视觉技术,可以在农作物不受影响的情况下,在近乎实时的环境给杂草喷洒除草剂,帮助农民更有效地节约昂贵且可能对环境造成破坏的除草剂。

这家位于加利福尼亚州森尼韦尔的公司在 2017 年吸引了重型设备制造商 John Deere 的关注,当时该公司以 3.05 亿美元的价格被 收购,目的是将该技术整合到其农业设备中。

Blue River Technology 的研究人员利用各种深度学习框架进行了试验,试图训练计算机视觉模型来识别杂草和农作物之间的差异,这对处理棉花植物来说是一个巨大的挑战,因为棉花植物不幸地与杂草相似。

Blue River Technology 的计算机视觉和机器学习主管 Chris Padwick 在他 8 月份的一篇 博客文章 中写道,训练有素的农艺师被征召来执行人工图像标注任务,并使用 PyTorch 训练 卷积神经网络(CNN),以“分析每一帧图像,并生成像素级精度的地图,显示农作物和杂草所在的位置”。

“像其他公司一样,我们也试过 Caffe、TensorFlow 和 PyTorch,”Padwick 告诉 InfoWorld。“对我们来说,这几乎是一种开箱即用的方法,我们既没有收到过任何 bug 报告,也没有出现过阻塞 bug。在分布式计算中,它真的很亮眼,它的性能确实比 TensorFlow 要好,TensorFlow 在数据并行方面相当复杂。”

Padwick 表示,PyTorch 框架的普及和简单性使得他在快速招聘新员工方面具有优势。话虽如此,Padwick 仍然梦想着这样一个世界:“人们可以在自己喜欢的环境中进行开发。”有些人喜欢用 Apache MXNet、Darknet 或 Caffe 进行研究,但是在生产环境中,它们只能使用单一语言,而 PyTorch 拥有我们成功所需的一切。”

Datarock:基于云端的采矿业图像分析

Datarock 是由一群地球科学家创立的澳大利亚初创公司,正在将 计算机视觉 技术应用于采矿业。更具体地说,它的深度学习模型正在帮助地质学家比以前更快地分析钻探岩心样本图像。

通常,地质学家会一厘米一厘米地仔细研究这些样品,以评估矿物学和结构;而工程师则会寻找诸如断层、裂缝和岩石质量等物理特征。这一过程是缓慢的,而且很容易出现人为错误。

Datarock 的首席运营官 Brenton Crawford 告诉 InfoWorld:“计算机可以像工程师一样看到岩石。如果你能在图像中看到,我们就可以训练一个模型去分析它,就像训练一个人类一样。”

与 Blue River 类似,Datarock 在生产环境中使用了 RCNN 模型的一种变体,研究人员转向数据增强技术,以便在早期阶段收集足够的训练数据。

“在最初的发现期之后,团队开始将各种技术结合起来,为钻探岩心图像创建一个图像处理工作流程。这项工作包括开发一系列深度学习模型,能够将原始图像处理为结构化格式,并分割重要的地质信息。”研究人员在一篇 博客文章 中写道。

通过 DataRock 的技术,客户只需半小时就能得到结果,而手工记录结果需要五、六小时。Crawford 说,这样可以使地质学家不再从事更繁重的工作。但是,“当我们将更困难的事情实现自动化时,我们确实会受到一些阻力,不得不解释为什么要把它们作为训练模型和使反馈循环转动的系统的一部分。”

和许多公司训练深度学习计算机视觉模型一样,Datarock 也是从 TensorFlow 开始的,但很快就转向了 PyTorch。

Datarock 的机器学习主管 Duy Tin Truong 告诉 InfoWorld:“一开始我们使用的是 TensorFlow,但是由于某些神秘的原因它会崩溃。”他说,“当时 PyTorch 和 Detecton2 刚刚发布,非常符合我们的需求,所以经过一些测试之后,我们发现它更容易调试和工作,而且占用的内存也更少,所以我们进行了转换。”

Datarock 还报告说,当在 GPU 上运行模型时,从 TensorFlow 到 PyTorch 和 Detectron2 的推理性能提高了 4 倍,而在 CPU 上则提高了 3 倍。

Truong 列举了 PyTorch 不断增长的社区、设计良好的界面、易于使用和更好的调试作为切换的理由,并指出,尽管“从界面的角度来看,它们是完全不同的,但如果你懂 TensorFlow,那么切换起来是相当容易的,特别是如果你了解 Python 的时候。”

作者介绍:

Scott Carey,经验丰富的多媒体记者,专注于科技、旅游、体育、文化和社交媒体。目前是记者和编辑,管理着一支由 B2B 记者组成的优秀团队,并且具有丰富的数字技能,在为网络和纸媒撰稿、报道事件、电视记者和电台记者方面的经验。

原文链接:

https://www.infoworld.com/article/3597904/why-enterprises-are-turning-from-tensorflow-to-pytorch.html

下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复: 扩展模块中文教程 即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目31讲
小白学视觉公众号后台回复: Python视觉实战项目31讲 即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

下载4:leetcode算法开源书
小白学视觉公众号后台回复:leetcode 即可下载。 每题都 runtime beats 100% 的开源好书,你值得拥有!





交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


本文分享自微信公众号 - 小白学视觉(NoobCV)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!