从Tensorflow转移到Pytorch

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Tensorflow转移到Pytorch相关的知识,希望对你有一定的参考价值。

参考技术A     这几天纠结于Tensorflow在处理语音数据时接口问题,在遇到大量的语音时无法找到函数来处理,搜寻一番可以使用数据迭代器来使用。在最开始接触神经网络就是google的Tensorflow,现在发现Tensorflow接口和网络上议论的类似,接口太复杂,即使使用keras发现学习成本太高。

    笔者的最初的实践和经验都是基于Tensorflow来构建的,虽然时间短,但是还是积累了一点资料,在后期可以直接复用。但是最近在知乎看了看Pytorch的评价,纠结了几天,笔者决定将神经网络的深度学习从Tensorflow转移到Pytorch!

    两个框架都基于基础数据类型张量(tensor)工作,可能接口和方法有一丝区别,但是思维和逻辑是不会变得。笔者得想法是单人作战,应该花时间在模型得教调上面,而不是api接口处理上面,可以尽快得构建自己的模型,探索世界。

    接下来几天就是系统性的学习下面这本书籍啦,先看看Pytorch到底咋样,再决定深度探索Pytorch还是返回原来的Tensorflow进行大量语音文件接口的处理。

三家企业实践:为什么从TensorFlow转向PyTorch?




深度学习框架PyTorch由于具备易用性,目前已经渗透到企业当中。透过媒体巨头迪士尼、机器人公司蓝河科技及采矿创企Datarock这三家公司的案例,我们来看看,为何他们会选择PyTorch,而不是谷歌著名的TensorFlow框架。

深度学习是机器学习的一个子类,它使用多层神经网络大规模自动化处理历史悠久的机器任务,例如图像识别、自然语言处理(NLP)和机器翻译。 

TensorFlow自2015年从谷歌推出以来,一直是研究和商业领域最受欢迎的开源深度学习框架。但在2016年,从Facebook上脱颖而出的PyTorch,由于社区推动的易用性和部署方面的改进,可适用于广泛的用例,很快就赶上TensorFlow。 

PyTorch在汽车工业中得到了特别广泛的采用,例如特斯拉和Lyft Level 5等飞行员的自动驾驶系统。该框架还可用于媒体公司的内容分类和推荐,以及工业应用中的机器人。 

Facebook AI人工智能产品负责人Joe Spisak告诉InfoWorld,虽然他对企业采用PyTorch的数量增加感到高兴,但要获得更广泛的行业应用,还有很多工作要做。 

「下一波采用将伴随着生命周期管理、MLOps和Kubeflow管道以及相关社区的出现。」他表示, 「对于那些刚开始的人来说,这些工具相当不错,可以使用托管服务和一些开源软件,AWS或Azure ML上的SageMaker之类的软件来开始使用。」

 一 

迪士尼:精准识别动画片中的人脸

自2012年以来,媒体巨头迪士尼的工程师和数据科学家一直在构建该公司所谓的 「内容基因组」。「内容基因组」平台是用内容元数据填充知识图谱的,基于机器学习的搜索能力为迪士尼庞大的内容库和个性化应用提供动力支持。 

例如,如果在搜索引擎中搜索史蒂夫·乔布斯,AI程序就可以利用这些数据来增强搜索,可以更好地帮助动画师从迪士尼档案中找到特定镜头和序列。 

这些元数据改善了迪士尼故事员用来制作内容的工具;激发了讲故事的迭代创意;通过推荐引擎、数字导航和内容发现为用户体验提供动力;并实现了商业智能。迪士尼开发人员Miquel Àngel Farré、Anthony Accardo、Marc Junyent、Monica Alfaro和Cesc Guitart在7月的一篇博客文章中写道。 

在这之前,迪士尼必须投资于一个庞大的内容注释项目,求助于数据科学家,利用图像识别的深度学习模型来训练一个自动化的标签流水线,以识别大量的人物、角色和地点的图像。 

迪士尼的工程师们一开始尝试使用了包括TensorFlow在内的各种框架,但在2019年决定围绕PyTorch进行整合。工程师们从传统的定向梯度直方图(HOG)特征描述器和流行的支持向量机(SVM)模型转向被称为区域与卷积神经网络(R-CNN)的对象检测架构版本。后者更有利于处理迪士尼内容中常见的真人、动画和视觉效果的组合。 

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

「我们现在只用一个模型来处理三种类型的人脸,这对于像《复仇者联盟》这样的漫威电影来说是非常棒的,因为它需要同时识别钢铁侠和托尼·史塔克,或者任何戴着面具的人物。」她说。 

由于工程师们要处理大量的视频数据来训练和并行运行该模型,因此在进入生产阶段时,他们还希望在昂贵的高性能GPU上运行。 

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

「TensorFlow对象检测器在制作过程中带来了内存问题,而且很难更新,而PyTorch有同样的对象检测器和Faster-RCNN,所以我们开始使用PyTorch来处理所有的事情。」Alfaro说。 

这种从一个框架到另一个框架的转换对工程团队来说也是出奇的简单。「『改用PyTorch』很容易,因为它都是内置的,你只需要插入一些功能,就可以快速上手,因此学习难度并不高。」Alfaro说。 

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

 二 

蓝河科技:除杂草机器人

蓝河科技(Blue River Technology)公司设计了一款机器人,它结合了数字寻路、集成摄像机和计算机视觉技术,可以识别农作物与杂草,精准地向杂草喷洒除草剂。 

2017年,重型设备制造商约翰迪尔(John Deere)3.05亿美元收购了蓝河科技,目的是将这种技术整合到其农业设备中。 

蓝河科技的研究人员在训练计算机视觉模型识别杂草和作物之间的区别时,尝试了各种深度学习框架。

他们让一些农学家手动标记图像,并使用PyTorch训练了卷积神经网络(CNN),以分析每帧图像并绘制出精确的农作物和杂草位置图。蓝河科技计算机视觉和机器学习技术总监Chris Padwick8月在一篇博客文章中写道。 

「和其他公司一样,我们尝试了Caffe、TensorFlow,然后尝试了PyTorch,」Padwick接受媒体采访时说,「对我们来说,PyTorch的作用非常大。我们没有收到过任何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,感受就会不同。 

参考链接:

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

器之能 面向正在进行数字化转型及智能化升级的各领域产业方,为他们提供高质量信息、研究洞见、数据库、技术供应商调研及对接等服务,帮助他们更好的理解并应用技术。产业方对以上服务有任何需求,都可联系我们。
zhaoyunfeng@jiqizhixin.com

以上是关于从Tensorflow转移到Pytorch的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow 损失函数在第一个 epoch 后归零

SciPy / Numpy的Pooling / Convolution比Tensorflow的Convolution / Pooling更快?

TensorFlow 从入门到精通:tensorflow.nn 详解

sh 从tensorflow冷冻模型到tensorflow lite

iPhonex从安卓转移到iOS失败无法链接怎么办?

TensorFlow 从入门到精通:tensorflow.nn 详解