社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

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

机器学习算法与自然语言处理 • 4 年前 • 510 次点击  
公众号关注 “ML_NLP
设为 “星标”,重磅干货,第一时间送达!

作者丨思想火龙果、小小将、夕风Twilighty
来自丨知乎问答  编辑丨极市平台
本文仅供学术参考,如有侵权请联系做删文处理。
 

深度学习发展至今,深度学习的框架也出现了百花齐放的局面,16年出世风靡世界的TensorFlow和稍晚一年却隐隐有盖住其风头的Pytorch,现在两个的地位有什么变化吗? 

回答链接:https://www.zhihu.com/question/452749603

# 回答一

作者:思想火龙果

来源链接:

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领域。

# 回答三

作者:夕风Twilighty

来源链接:

https://www.zhihu.com/question/452749603/answer/1823164065
全球范围看,经过16-19年这三年的发展,PyTorch在学术圈的「垄断」地位基本已经站稳。这一方面得益于PyTorch一开始主打的动态建图,便于实验室的学生们快速迭代模型,试验想法是否work;另一方面也来自于PyTorch吸收了TF 1.x版本中的某些优点,doc做的也不错,便于初次接触机器学习和深度学习的新人上手,这一点的重要性往往容易被忽视。

TensorFlow在国内目前处在一个相对尴尬的境地,TF 1.x系列面世较早,2015年以及之前就深耕深度学习的程序员和在校同学,大部分用框架时都会从TF(与TF的雏形,即更早的theano)入手。因此在学术界、工业界都有很深的积淀,工业界由于项目更「重」,牵一发而动全身(或者应该说屎山太多),因此目前很多项目仍然停留在TF 1.x(1.1x)上面。因此要说TF快凉了,也不客观。但TF目前面临一个比较尴尬的问题,Google强推TF 2.0版本,但TF 1.x和2.0版本之间的API差异实在不小,导致doc的阅读成本和版本适配成本都相当高。

至于学术界,PyTorch在国内学校也广受欢迎,TF 2.0我知道有一小部分实验室在用。但总的来说 TF 2.0在这方面相对于PyTorch确实没有优势,实验室刷metric的场景下,大家也基本没有太多机会发挥出TF在分布式上的一些buff。而与此同时,PyTorch的生态建构肉眼可见地渐入佳境,TorchVision和TorchText两个库都做的相当漂亮,整体Pipeline的舒适度谁用谁知道。TensorFlow显然也明白自己要补齐什么短板,Keras可以认为就是这样的尝试吧,但Keras的封装做的让人感觉总差点味道。至于MXNet、PaddlePaddle之流,在国内的「市场」确实很小。PyTorch目前的确在蚕食TF的天地,如果在模型部署方面有更稳健的突破(包括对底层C++的某些开放和优化),那么TF确实要做出一些大的改变来应对了。



推荐阅读:

漫谈VAE和VQVAE,从连续分布到离散分布

Huggingface BERT源码详解:应用模型与训练优化

在错误的数据上,刷到 SOTA 又有什么意义?

点击下方卡片,关注公众号“机器学习算法与自然语言处理”,获取更多信息

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/117353
 
510 次点击