【深度学习】2021 年了,TensorFlow 和 PyTorch 两个深度学习框架地位又有什么变化吗?

2021-07-07 15:25:08 浏览数 (1)

2021年了,大家用TensorFlow还是PyTorch多一点?

观点一

作者:Yulong

链接:https://www.zhihu.com/question/452749603/answer/1826252757

很尴尬的是,业界大多数支撑搜广推场景的模型,还是用tensorflow,而且恶心的是还是tensorflow 1.x,而且更更恶心的是各家攻城狮早期就与master分叉了,开始自己魔改tf,给这个屎山代码打上各种补丁。这些陈年老码已经稳定运行上线了,谁也不敢说从头开始,用pytorch汰换掉。这样搞出线上故障谁背的起?每天是身在tf营,心在torch。怀念简单的model写法,怀念直接写个if而不需要用诡异的tf.cond。不要管什么variable scope,也不要担心是否真的在train还是eval……pytorch团队赶紧支持大规模kv partition variable,赶紧开发serving部署啊,快解民于倒悬啊!遗民泪尽tf里,南望torch又一年(ToT)/~~~

观点二

作者:思想火龙果

链接:https://www.zhihu.com/question/452749603/answer/1819357374

pytorch统治学术圈。

现在各大顶会开源代码没有一丝丝的tensorflow2.x,就连谷歌家自己的论文也是只有torch和jax。零零星星一些tf1的开源代码。

tensorflow2.x难用吗?真不难用的,基本就是在用keras,tf.data pipeline 和 tf.distribute 用起来真的省心又快。问题就是现在tf2没人用啊,也不是不好用,就是你有的pytorch也有,pytorch用得已经好好的了为啥还要换呢?然后你又再搞一个新库,jax,而且还是用tensorflow写的,而且还不是像keras,sonet一样能跟tf混着用的 ,然后google research开源代码要不是pytorch就是jax,连自家都不用别人会用么。

谷歌真的挺迷惑的,把keras合并了不去好好搞keras推广keras,可能再过两年 import tensorflow as tf 直接报warning “tensorflow is deprecated, please use pytorch instead”

观点三

作者:小小将

链接:https://www.zhihu.com/question/452749603/answer/1822694849

变化太大了,今年面试的实习生,当问他们常用的深度学习框架时,他们清一色的选择了:PyTorch。

我个人认为几个原因导致地位逆转:

(1)PyTorch的易用性更好(当一个框架本身能衍生很多上层框架时,你就能知道它本身是多么不友好了,说的就是TF),而且生态已经起来了,大部分论文开源都是用PyTorch;

(2)TF2看起来并不太成功,反而破坏TF1的生态。TF1和TF2往往混杂在一起,让人摸不着头脑。

(3)关于大家最担心的部署优化问题,其实目前PyTorch也在不断提升这块的劣势,目前Torch->ONNX->TensorRT已经相对成熟了,其他的端侧框架如ncnn也支持torch了。当然动态图比静态图确实要多踩一点坑,但带来的可能是模型迭代效率的提升。

(4)关于分布式训练,TensorFlow可能优势更大,但可能大部分人最多跑个单机多卡就够了,所以性能上不会差距太大,而且分布式训练还有很多第三方框架来支持比如horovod。而且本身PyTorch自带的DDP也不差。

其实我从16年开始接触深度学习,最早学习的框架是theano,当TensorFlow出来后,theano的使用者就慢慢转向了TensorFlow,到19年我又开始转向PyTorch。

每次转变后,我只能说一句话:真香。声明:我的观察只限于在比较卷的CV领域。

0 人点赞