写点什么

始于 TensorFlow ,终于 PyTorch

2020 年 12 月 18 日

始于TensorFlow ,终于PyTorch

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


Google 的 Tensorflow 与 Facebook 的 PyTorch 已经成为了两个非常流行的深度学习框架。到底哪种架构最适合企业进行深度学习项目?为什么企业会从 TensorFlow 转到 PyTorch ?本文通过一些例子来说明为什么 Python 更适合于企业。


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


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


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


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


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


MLOpsKubeflow管道以及这些社区的支持将会带来新一轮的采用浪潮,”他说。“对于那些刚起步的人来说,这些工具都相当不错,它们使用了托管服务和一些开源的东西,比如AWS 的 SageMakerAzure 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

2020 年 12 月 18 日 11:211260
用户头像
刘燕 InfoQ记者

发布了 483 篇内容, 共 150.2 次阅读, 收获喜欢 869 次。

关注

评论 1 条评论

发布
用户头像
我还是很看好PyTorch的未来
2020 年 12 月 23 日 16:10
回复
没有更多了
发现更多内容

微服务&DDD&中台

dony.zhang

中台 微服务 DDD

架构师训练营 Week 10 作业

Wancho

极客大学架构师训练营 0 期 week 10 作业

chun1123

dubbo DDD

微服务与DDD

走过路过飞过

架构师训练营Week10学习总结

Frank Zeng

【架构师训练营 - week10 -1】作业

早睡早起

架构师训练营第 0 期第 10 周作业

无名氏

微服务 领域驱动设计

练习 10-1

闷骚程序员

堆栈神奇应用之CXO让我做一个计算器!!

架构师修行之路

数据结构 堆栈

对中台思维的思考

朱月俊

Dubbo微服务调用时序图及微服务架构个人见解

潜默闻雨

微服务架构一点思考和认识

张磊

Week10总结

张磊

week10 总结

雪涛公子

对微服务架构的理解

朱月俊

Eureka常见问题汇总及注意事项

xcbeyond

Java SpringCloud Eureka 服务注册与发现 常见问题

OAuth 2.0

陈皮

极客大学架构师训练营 --第10周

李朋

hive拉链表优化·百亿量级数据支持准实时更新

誓约·追光者

hive 实时数仓 海量数据库的设计与实践

架构师训练营Week10作业

Frank Zeng

week 10作业

a晖

来自面试官的技术面试题

xcbeyond

Java 数据库 自我介绍 面试经验

微服务&DDD

极客大学架构师训练营

芯片破壁者(十二.上):“大头儿子”模式下的韩国半导体

脑极体

架构师训练营 Week 10 总结

Wancho

【架构师训练营】第 10 周总结

花生无翼

架构师训练营第十周作业

吴吴

【架构师训练营】第十期作业

云064

架构师培训 -10 微服务、秒杀

刘敏

week 10 总结

a晖

面试官:您能说说序列化和反序列化吗?是怎么实现的?什么场景下需要它?

xcbeyond

Java 面试题 序列化

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

始于TensorFlow ,终于PyTorch-InfoQ