Py学习  »  机器学习算法

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

极市平台 • 2 年前 • 275 次点击  
↑ 点击蓝字 关注极市平台

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

极市导读

 

深度学习发展至今,深度学习的框架也出现了百花齐放的局面,16年出世风靡世界的TensorFlow和稍晚一年却隐隐有盖住其风头的Pytorch,现在两个的地位有什么变化吗? >>加入极市CV技术交流群,走在计算机视觉的最前沿

回答链接: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确实要做出一些大的改变来应对了。

如果觉得有用,就请分享到朋友圈吧!

△点击卡片关注极市平台,获取最新CV干货

公众号后台回复“CVPR21检测”获取CVPR2021目标检测论文下载~


极市干货
深度学习环境搭建:如何配置一台深度学习工作站?
实操教程:OpenVINO2021.4+YOLOX目标检测模型测试部署为什么你的显卡利用率总是0%?
算法技巧(trick):图像分类算法优化技巧21个深度学习调参的实用技巧


CV技术社群邀请函 #

△长按添加极市小助手
添加极市小助手微信(ID : cvmart4)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群


每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~


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