你用的是pyTorch还是tensorflow?不同的人群可能会有不同的答案,研究人员可能更喜欢pyTorch,因为它简单易用,可以快速验证想法从而抓住发表论文的机会。有从业者预测,未来pyTorch在学术界将一枝独秀。但对于产业人员来说,tensorflow可能是更好的选择,相关的软件生态更利于部署,比如高性能深度学习TensorRT、移动端tensorflowLite、多种编程语言的API等。在Keras的加持下,使用和学习的易用性大大增强,未来可能会出现更多的TF男孩。深度学习领域的各种框架总数超过二十个,但很多框架缺乏维护,社区不活跃。造成了一些框架垄断的局面。Reddit小哥问:我应该学哪个框架?社交媒体上有很多帖子宣传pyTorch有多好,我在社交媒体上看到很多帖子说pyTorch有多棒,但我只用tensorflow。我觉得tensorflow非常强大,无论是在科研还是在工业部署上都有广泛的应用。我想不通,我应该切换到pyTorch吗?或者你在学习吗?它们之间有什么区别?为什么大家都吹捧pyTorch而贬低tensorflow?我想知道,您使用哪个框架,以及您不使用另一个框架的原因。pyTorch的回答这位小弟的灵魂拷问可以说是困扰AI界新手的必备题了。这可以比作php是世界上最好的语言。有pyTorch用户的网友在下方回复,获得最高好评。我已经使用tensorflow1.x好几年了,感觉像个专家。第一次尝试pyTorch的时候,发现tensorflow无法实现的图操作在pyTorch上实现起来非常简单。不到一个月的时间,感觉自己使用pyTorch的水平已经不亚于tensorflow了。原来tensorflow所谓的expertise是一个晦涩难懂的API,而pyTorch是用来构建深度学习模型的。tensorflow不懂设计。知道网友对tensorflow的态度是API太乱,认为静态图片和动态图片不是它们最大的区别。当然,最犀利的评价还是Karpathy的评价:用了几个月pyTorch,腰不酸了,腿不痛了,皮肤光滑了,视力也提高了。(提示tensorflow辣眼睛?)也有pyTorch用户觉得写起来就像写python代码一样,没有额外的学习成本。tensorflow饼图说明了什么?也有坚定喜欢tensorflow的网友,但也觉得tensorflow对新手太不友好,比如tf.Session,tf.Estimator,大家都在写自己的部分,官方没有统一的高层API。到2021年,tf阵营会有TF2.x,会越来越像Keras。虽然tensorflow并不完美,但tf.keras是完美的。(人生苦短,我用的是Keras)也有网友认为pyTorch在生产环境的部署远不如tensorflow,移动端也没有很好的解决方案,只适合科研。其他框架在GitHub的排行榜上默默呐喊,tensorflow当之无愧,是Keras的三倍多。深度学习从业者的入门多从tensorflow开始,合并后的Keras也超越了pyTorch。可见,工业部署还是非常依赖tensorflow的。毕竟pyTorch还依赖tensorboard等等。国产框蝇浆还有很长的路要走。结论就是所谓的“形而上之谓道,形而下之谓器”。在水平还比较低的时候,多注意具体的实用细节。随着水平的提高,框架已经是身外之物,创造更好、更高性能的模型才是AI之道。
