你用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之道。
参考资料: