Pytorch VS TensorFlow (2020年最新对比)

最近,深度学习Deep Learning 的热潮依旧,而且有着愈演愈烈的趋势,所以为了迎合这股潮流,学习一些主流的深度学习框架还是很必须的。

现在的主流深度学习框架,主要是 Google 系的 TensorFlow 以及 Facebook 系的 Pytorch,其他还有 Keras,Caffe, 微软的 CNTK 等

2020年结束,TF 和 Pytorch 两大框架基本上可以说是平分天下!形势有点像手机操作系统中的IOS 和 Android。

Image for post

同时,国内的DL框架还是局限在几个大厂里面,例如华为的 MindSpore ,清华的 Jittor, 旷视的MegEngine,但是还需要时间才能和国外的大厂进行竞争,毕竟先发优势在那里摆着,企业也不想再招一批专门做小众DL框架的员工吧,除非国产的DL框架可以在性能上有数量级的飞跃,但是考虑到国内科技公司的德性,这个可能性太小。

话说回来,还是介绍今天的两位主角: TensorFlow 和 Pytorch。

查阅相关资料以及各位大神的评价之后,两款框架的比较可以从下面几个方面进行:

编程API

TF 的用户编程界面一直备受诟病,像是重新在学习一种新的语言,我相信这本来是Google 的工程师们想创立一种独特的编程体验,但是这也无形中增加了其他工程师和数据科学家的使用门槛!

Pytorch 的编程界面则不同,由于使用了小众的LUA语言,Torch很早就开始和Python结合,所以整个的编程界面已经Python化

框架计算图

TF 的框架图是静态的,即我们必须首先设计好整个深度学习模型的结构,然后才能加载数据,这个有点像燥起的房地产开发商,必须先盖好房子,再收钱招租。

Pytorch 则不同,Pytorch 的计算图是动态的,风格很Python化,即脚本模式,我们可以一层一层的进行模型的搭建,这个过程中,我们可以直接放进来数据,然后观察每一层神经网络的输出,然后进行模型的实时修改,如果放在现实中,则有点像当前的房地产开放商,先收钱,再盖房,盖了一层就可以直接招租,然后看房子是否可以卖出再考虑是否继续盖。这一点对输入变量长度会变化的RNN模型很重要,这也是 Pytorch 比较适合 RNN 的原因。

TF 的框架图比较适合企业部署,因为模型的结构已经提前设计好,那么我们只需要对模型的参数进行训练,验证结果的好坏,如果模型性能很好,那么直接输出到产品,被 Java/C++使用,但是缺陷就是 DEBUG 很麻烦,如果模型的效果很差,我们不知道中间哪一层除了问题,我们不能像DEBUG 软件一样,在中间加个断点,然后看看这个断点的输出,然后一步步寻找问题。之前有传闻说Google的工程师由于忍受不了TF的繁琐,所以转投 Pytorch。

而 Pytorch 的优势就是很好的弥补了TF的缺点,工程师可以观察每个神经元(层)的输出,然后即使调整模型的结构/参数,如此可以迅速完成模型的训练和学习。

但是,到2020年,TF也在做出一些变化,TF已经引入了一种 ‘Eager’鹰眼模式的动态计算图,而Pytorch 也为了企业部署的方便提供了一种静态的计算图模式,两个框架都在向对方学习。

分布式计算

两个框架都能提供在单个/多个 CPU/GPU上面进行计算的能力。

早期的 TF 如果要使用多个GPU,则需要首夺那个进行设置和编程,以保证在多个设备上面的运行性能。但是现在,无论是 TF 还是 Pytorch,都方便的支持框架在多个设备上面的计算!

TF 的一大优势是背靠 Google,所以当 Google 开始制造定制化的 TPU (Tensor Processing Unit)设备之后,业界发现 TPU 的性能可以远高于 GPU,同时在 2018 年开始可以允许第三方使用。这样造成了一个现实,如果使用 TF,可以方便的把代码部署到 TPU 中,而Pytorch 如果想使用 TPU 的话,则需要借助第三方插件,例如 XLA,但是仍然是一种不是很可靠的处理方法。

生产部署

在生产部署领域,TF 可以说是碾压 Pytorch ,究其原因,恰恰是因为 TF 的静态计算图模式,以及 TF 丰富的工具包,如 快速傅里叶变换,张量的各种操作等。

而且,TF 可以很方便的部署到 云/浏览器/移动终端,这也是很多公司/企业在进行深度学习框架的选择时选择 TF 的原因。

Pytorch 当然也意识到自身和 TF 在此方面的差距,所以从 1.5 版本开始,努力在弥补在生产部署领域和 TF 的差距,但是依然需要时间和努力!

可视化

模型的可视化对模型的开发者来说,是一个非常大的关注点和助力工具,而在此方面,依然是 TF 占据一定的优势!

TF 的可视化组件为 TensorBoard,从名字也可以推想出来,这是一个类似于 Dashboard 仪表盘的模型可视化工具,如下图所示

How to use TensorBoard with Google Colab | by kuanhoong | Medium

相比于 TF, Pytorch 开发者则使用了 Visdom 工具包,但是 Visdom 所提供的功能和 TensorBoard 相比,仍然有很大的差距!

后续,我们会持续关注 TF 和 Pytorch 的发展!希望大家关注和收藏!

 

 

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值