转载新智元  来源:reddit 编辑:LRS

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

你用pyTorch还是用tensorflow?

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

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

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

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

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

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

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

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

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

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

pyTorch派的回答

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

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

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

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

tensorflow不懂设计。

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

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

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

也有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。

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

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

结语

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

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

参考资料:

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