Reddit引爆框架决战!TensorFlow遭疯狂吐槽,PyTorch被捧上神坛

简介: PyTorch还是tensorflow更好?这个没有答案的问题最近登上了Reddit的热榜第一,「甜咸之争」你更中意哪个?

微信图片_20220112174506.jpg


你用pyTorch还是用tensorflow?

 

对于不同人群可能有不同的答案,科研人员可能更偏爱pyTorch,因其简单易用,能够快速验证idea来抢占先机发论文。

 

有从业人员预测,学术界pyTorch未来会一枝独秀。

 

微信图片_20220112174508.png

 

但对工业人员来说,tensorflow可能是更好的选择,相关软件生态更有利于部署,如高性能深度学习TensorRT、移动端tensorflow Lite、多种编程语言的API等。

 

在Keras的加持下,易用易学性得到了极大增强,未来可能会有更多TF boys的出现。

 

微信图片_20220112174510.png

 

深度学习领域的各种框架总数超过了二十个,但是许多框架都缺乏维护,社区并不活跃。造就了部分框架垄断的情况。


Reddit小哥发出疑问:我该学哪个框架?


社交媒体有很多宣传pyTorch特别好用的帖子,

 

在社交媒体上看到了很多关于 pyTorch 有多棒的帖子,但是我只会用tensorflow。我觉得tensorflow非常强大,不管是科研还是工业部署上都有广泛的应用。

 

我弄不明白,我应该转到pyTorch上吗?还是说都学习?他们到底有什么差别?为什么大家都吹捧pyTorch而贬低tensorflow?

 

我想知道,你用哪个框架,以及为什么不用另一个的原因。


pyTorch派的回答


这位小哥的灵魂拷问可以说是困扰AI从业新手的一个必经难题。这可以类比为php是世界上最好的语言。

 

微信图片_20220112174514.png

 

有pyTorch用户的网友在下面回复,获得最高赞。

 

我用tensorflow1.x几年了,感觉自己是个专家。当我第一次尝试pyTorch后,发现tensorflow无法实现的图形操作,在pyTorch上非常容易实现。不到一个月,我就觉得我用pyTorch的水平和tensorflow一样好了。

 

事实证明,tensorflow所谓的专业知识都是晦涩的API,而pyTorch则是为了构建一个深度学习模型。

 

tensorflow不懂设计。

 

知乎网友对tensorflow的态度也都是API过于混乱,并认为静态图和动态图并不是他们之间最大的区别。

 

微信图片_20220112174516.png微信图片_20220112174518.png

 



当然,最犀利的当属Karpathy的评论:

用了pyTorch几个月以后,腰不酸了,腿不疼了,皮肤光滑了,视力都变好了。(暗示tensorflow辣眼睛?)


微信图片_20220112174520.png

 

也有pyTorch用户觉得写起来就像写python代码一样,没有额外的学习成本。

 

tensorflow派怎么说?


也有网友坚定地喜欢tensorflow,但也觉得tensorflow对新手太不友好了,如tf.Session,tf.Estimator,每个人都在写自己的部分,没有统一的官方高级API。

 

到了2021年,tf阵营有了TF 2.x,变得和Keras越来越像了。虽然tensorflow不是很完美,但是tf.keras是完美的。(人生苦短,我用Keras)

 

也有网友认为,pyTorch在生产环境的部署远远不如tensorflow,在移动端也没有好的解决方案,只适合科学研究。

 

其他框架在默默流泪

 

在GitHub的排行榜上,tensorflow一骑绝尘,是Keras的三倍还多。

 

深度学习从业者的入门大多是从tensorflow起步,被合并的Keras也超越了pyTorch。

 

微信图片_20220112174522.png微信图片_20220112174524.png微信图片_20220112174526 - 副本.png微信图片_20220112174528.png微信图片_20220112174530.png

微信图片_20220112174532.png


由此可见,工业部署对tensorflow还是十分依赖的,毕竟pyTorch也依赖tensorboard等。

 

国产框架飞浆还有很长的路要走。

 

结语


正所谓「形而上者谓之道,形而下者谓之器」。

 

当水平还处于比较低的时候,更关注于具体的实践细节。随着水平的提高,框架已是身外之物,创造出更好,更高性能的模型才是AI之道。


参考资料:


https://www.reddit.com/r/MachineLearning/comments/m3boyo/d_why_is_tensorflow_so_hated_on_and_pytorch_is/

相关文章
|
1月前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
2784 3
|
2月前
|
数据挖掘 PyTorch TensorFlow
|
7天前
|
机器学习/深度学习 监控 PyTorch
深度学习工程实践:PyTorch Lightning与Ignite框架的技术特性对比分析
在深度学习框架的选择上,PyTorch Lightning和Ignite代表了两种不同的技术路线。本文将从技术实现的角度,深入分析这两个框架在实际应用中的差异,为开发者提供客观的技术参考。
24 7
|
1月前
|
PyTorch TensorFlow 算法框架/工具
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
本文提供了在Ubuntu 18.04操作系统的NVIDIA Jetson平台上安装深度学习和计算机视觉相关库的详细步骤,包括PyTorch、OpenCV、ONNX、TensorFlow等。
38 1
Jetson环境安装(一):Ubuntu18.04安装pytorch、opencv、onnx、tensorflow、setuptools、pycuda....
|
1月前
|
并行计算 PyTorch TensorFlow
环境安装(一):Anaconda3+pytorch1.6.0+cuda10.0+cudnn7.6.4+tensorflow1.15+pycocotools+pydensecrf
这篇文章详细介绍了如何在Anaconda环境下安装和配置深度学习所需的库和工具,包括PyTorch 1.6.0、CUDA 10.0、cuDNN 7.6.4、TensorFlow 1.15、pycocotools和pydensecrf,并提供了pip国内镜像源信息以及Jupyter Notebook和Anaconda的基本操作。
89 0
环境安装(一):Anaconda3+pytorch1.6.0+cuda10.0+cudnn7.6.4+tensorflow1.15+pycocotools+pydensecrf
|
2月前
|
机器学习/深度学习 数据挖掘 TensorFlow
解锁Python数据分析新技能,TensorFlow&PyTorch双引擎驱动深度学习实战盛宴
在数据驱动时代,Python凭借简洁的语法和强大的库支持,成为数据分析与机器学习的首选语言。Pandas和NumPy是Python数据分析的基础,前者提供高效的数据处理工具,后者则支持科学计算。TensorFlow与PyTorch作为深度学习领域的两大框架,助力数据科学家构建复杂神经网络,挖掘数据深层价值。通过Python打下的坚实基础,结合TensorFlow和PyTorch的强大功能,我们能在数据科学领域探索无限可能,解决复杂问题并推动科研进步。
59 0
|
2月前
|
机器学习/深度学习 数据挖掘 TensorFlow
从数据小白到AI专家:Python数据分析与TensorFlow/PyTorch深度学习的蜕变之路
【9月更文挑战第10天】从数据新手成长为AI专家,需先掌握Python基础语法,并学会使用NumPy和Pandas进行数据分析。接着,通过Matplotlib和Seaborn实现数据可视化,最后利用TensorFlow或PyTorch探索深度学习。这一过程涉及从数据清洗、可视化到构建神经网络的多个步骤,每一步都需不断实践与学习。借助Python的强大功能及各类库的支持,你能逐步解锁数据的深层价值。
63 0
|
3月前
|
测试技术 数据库
探索JSF单元测试秘籍!如何让您的应用更稳固、更高效?揭秘成功背后的测试之道!
【8月更文挑战第31天】在 JavaServer Faces(JSF)应用开发中,确保代码质量和可维护性至关重要。本文详细介绍了如何通过单元测试实现这一目标。首先,阐述了单元测试的重要性及其对应用稳定性的影响;其次,提出了提高 JSF 应用可测试性的设计建议,如避免直接访问外部资源和使用依赖注入;最后,通过一个具体的 `UserBean` 示例,展示了如何利用 JUnit 和 Mockito 框架编写有效的单元测试。通过这些方法,不仅能够确保代码质量,还能提高开发效率和降低维护成本。
49 0
|
3月前
|
UED 开发者
哇塞!Uno Platform 数据绑定超全技巧大揭秘!从基础绑定到高级转换,优化性能让你的开发如虎添翼
【8月更文挑战第31天】在开发过程中,数据绑定是连接数据模型与用户界面的关键环节,可实现数据自动更新。Uno Platform 提供了简洁高效的数据绑定方式,使属性变化时 UI 自动同步更新。通过示例展示了基本绑定方法及使用 `Converter` 转换数据的高级技巧,如将年龄转换为格式化字符串。此外,还可利用 `BindingMode.OneTime` 提升性能。掌握这些技巧能显著提高开发效率并优化用户体验。
59 0
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
深度学习框架之争:全面解析TensorFlow与PyTorch在功能、易用性和适用场景上的比较,帮助你选择最适合项目的框架
【8月更文挑战第31天】在深度学习领域,选择合适的框架至关重要。本文通过开发图像识别系统的案例,对比了TensorFlow和PyTorch两大主流框架。TensorFlow由Google开发,功能强大,支持多种设备,适合大型项目和工业部署;PyTorch则由Facebook推出,强调灵活性和速度,尤其适用于研究和快速原型开发。通过具体示例代码展示各自特点,并分析其适用场景,帮助读者根据项目需求和个人偏好做出明智选择。
66 0