Pytorch和Tensorflow,谁会笑到最后?
Posted AI科技大本营
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytorch和Tensorflow,谁会笑到最后?相关的知识,希望对你有一定的参考价值。
作者 | 土豆变成泥
来源 | 知秋路(ID:gh_4a538bd95663)
【导读】作为谷歌tensorflow某项目的Contributor,已经迅速弃坑转向Pytorch。目前Tensorflow还没有被Pytorch比下去,但之后极大概率被比下去。
01 在学术界Pytorch已经超越Tensorflow
Pytorch因其简单易上手,目前已经被广大Researcher所使用。
深度学习论文Pytorch框架使用比例
从2018年的10%左右,飙升到今年的80%,只要不一顿操作猛如虎,Pytorch在学术界称霸已成定局。
道理很简单,Research的目的是快速实现、验证自己的想法,而不太注重兼容、部署等问题,因此多数人奉行“怎么快怎么来”的策略;同样,只有能够快速验证自己idea的Researcher才能不被实现而耽误太多时间,更有机会发好的论文。
因此,学术界Pytorch未来会一枝独秀。
02 在工业界Tensorflow依旧无可取代
工业界更注重部署,而Tensorflow的生态更有利于快速部署。
以Nvidia支持的TensorRT为例子,与Pytorch相比,英伟达官方不仅是是支持了Tensorflow,而且给出了多种模型的基于TensorRT的多版本模型,除此之外,还给出了不同模型在最常用的嵌入式板子TX2上的算法测试时间。
所以,如果作为一个工程人员,为了更快速给出方案、更快速跑通流程、更快速完成任务,最好的方式就是在现有的生态基础上,进行算法组合和调优,以满足特定任务。
而如果采用部署生态尚不成熟的Pytorch,可能遇到目前TensorRT不支持某些操作、TensorRT的优化没达到Tensorflow的水平,甚至出了一些莫名其妙的Bug然后花了好几天才解出来甚至解不出来。
所以,目前的部署生态,Tensorflow要比Pytorch老练很多。
03 未来,Tensorflow无法打入学术界
从Pytorch2018年的10%飙升到80%这一趋势来看,Tensorfow未来是无法打入学术界的,并且后续占据的份额会更少。一个失了人心的框架,想力挽狂澜的再找回人心,比重新开始还要艰难。
除此之外,Tensorflow 2.0更值得令人批判,如果图它的Eager模式,我为何不使用Pytorch?图它的历史包袱吗?都是动态图,Pytorch清晰明了简洁,也没有那么多老旧历史需要绕道。而使用Tensorflow时候,总是一不小心就发现还是绕回了原来的旧版本上。
04 未来,Tensorflow可能也会失掉工业界
Tensorflow在工业界的地位,也没有那么牢固,因为生态总归是人构建的。
当学术界疯狂扑入Pytorch,对新模型的适配等工作,自然会倾向于Pytorch了。
有些项目做了Pytorch转Tensorflow的工具,到时候难道Tensorflow,就只用来部署了?
05 Tensorflow的劣势
Tensorflow静态图虽说上手难了点,但这并非1.x版本不好用的主要原因。Tensorflow 1.x不好用的主要原因在于API混乱。
tf.nn中算是基本操作,可tf.layer、tf.keras、还有tf.contrib里面一坨东西tf.contrib.layer、slim等等,这么多冗余的Module,其实都只是基本的神经网络层,contrib里面额外有一些特殊的。
可是这种冗余极大降低了Tensorflow的生态质量。有的人习惯用tf.layer,有的喜欢nn,官方还一直用slim,不少人也用tf.contrib里面的很多东西。这种混乱使得Tensorflow的生态用起来并没有那么容易。
记得刚用tensorflow不久时候,对contrib里面的东西了解也不多。突然看代码遇到slim这东西,感觉简直了。谷歌官方的代码里,明明就一个MobileNet,就不能不用contrib里面的东西么?我就不知道有什么骚操作需要用到这里的东西,说好的contrib里面的东西不稳定呢?不稳定还总是用。
到了Tensorflow 2.0后,情况并没有好转。
为了兼容1.x,谷歌也是想方设法的搞。可是,2.x的生态其实连Pytorch的车尾灯都看不到。图个啥?图时不时发觉还是1.x的生态好?
还不如坚守静态图,然后好好梳理一下自己的API!
06 总结
Pytorch依旧上升,而tensorflow的混乱会使得tensorflow会优势渐失,倒向动态图的tensorflow,只会加速自己的消亡。
所以,对于要入坑神经网络的小白,直接扑向Pytorch不要回头;
对于已经在使用Pytorch的,不要心心念念想着Tensorflow,这不是一个香饽饽;
对于已经在Tensorflow浅坑里的,建议马上转向Pytorch,因为你会Tensorflow再学会Pytorch,一周就够了;
对于已经在Tensorflow坑底的,那一定是很大很大的大佬了,框架对你来说已经不是束缚了。
框架是死的,人是活的。两个框架各有千秋,只是Pytorch更有前景。
选择最有前景的,才是最理智的,不要49年入国军。
◆
精彩公开课
◆
你点的每个“在看”,我都认真当成了AI
以上是关于Pytorch和Tensorflow,谁会笑到最后?的主要内容,如果未能解决你的问题,请参考以下文章
如何高效入门 PyTorch ?深度学习框架是PyTorch还是TensorFlow?