Pytorch和Tensorflow,谁会笑到最后?

Posted AI科技大本营

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytorch和Tensorflow,谁会笑到最后?相关的知识,希望对你有一定的参考价值。


作者 | 土豆变成泥

来源 | 知秋路(ID:gh_4a538bd95663)

【导读】作为谷歌tensorflow某项目的Contributor,已经迅速弃坑转向Pytorch。目前Tensorflow还没有被Pytorch比下去,但之后极大概率被比下去。


01 在学术界Pytorch已经超越Tensorflow


Pytorch因其简单易上手,目前已经被广大Researcher所使用。


Pytorch和Tensorflow,谁会笑到最后?

深度学习论文Pytorch框架使用比例


从2018年的10%左右,飙升到今年的80%,只要不一顿操作猛如虎,Pytorch在学术界称霸已成定局。


道理很简单,Research的目的是快速实现、验证自己的想法,而不太注重兼容、部署等问题,因此多数人奉行“怎么快怎么来”的策略;同样,只有能够快速验证自己idea的Researcher才能不被实现而耽误太多时间,更有机会发好的论文。


因此,学术界Pytorch未来会一枝独秀。


02 在工业界Tensorflow依旧无可取代


工业界更注重部署,而Tensorflow的生态更有利于快速部署。


以Nvidia支持的TensorRT为例子,与Pytorch相比,英伟达官方不仅是是支持了Tensorflow,而且给出了多种模型的基于TensorRT的多版本模型,除此之外,还给出了不同模型在最常用的嵌入式板子TX2上的算法测试时间。


Pytorch和Tensorflow,谁会笑到最后?


所以,如果作为一个工程人员,为了更快速给出方案、更快速跑通流程、更快速完成任务,最好的方式就是在现有的生态基础上,进行算法组合和调优,以满足特定任务。


而如果采用部署生态尚不成熟的Pytorch,可能遇到目前TensorRT不支持某些操作、TensorRT的优化没达到Tensorflow的水平,甚至出了一些莫名其妙的Bug然后花了好几天才解出来甚至解不出来。


所以,目前的部署生态,Tensorflow要比Pytorch老练很多。


03 未来,Tensorflow无法打入学术界


从Pytorch2018年的10%飙升到80%这一趋势来看,Tensorfow未来是无法打入学术界的,并且后续占据的份额会更少。一个失了人心的框架,想力挽狂澜的再找回人心,比重新开始还要艰难。


除此之外,Tensorflow 2.0更值得令人批判,如果图它的Eager模式,我为何不使用Pytorch?图它的历史包袱吗?都是动态图,Pytorch清晰明了简洁,也没有那么多老旧历史需要绕道。而使用Tensorflow时候,总是一不小心就发现还是绕回了原来的旧版本上。


04 未来,Tensorflow可能也会失掉工业界


Tensorflow在工业界的地位,也没有那么牢固,因为生态总归是人构建的。

当学术界疯狂扑入Pytorch,对新模型的适配等工作,自然会倾向于Pytorch了。


有些项目做了Pytorch转Tensorflow的工具,到时候难道Tensorflow,就只用来部署了?


05 Tensorflow的劣势


Tensorflow静态图虽说上手难了点,但这并非1.x版本不好用的主要原因。Tensorflow 1.x不好用的主要原因在于API混乱。


Pytorch和Tensorflow,谁会笑到最后?


tf.nn中算是基本操作,可tf.layer、tf.keras、还有tf.contrib里面一坨东西tf.contrib.layer、slim等等,这么多冗余的Module,其实都只是基本的神经网络层,contrib里面额外有一些特殊的。


可是这种冗余极大降低了Tensorflow的生态质量。有的人习惯用tf.layer,有的喜欢nn,官方还一直用slim,不少人也用tf.contrib里面的很多东西。这种混乱使得Tensorflow的生态用起来并没有那么容易。


记得刚用tensorflow不久时候,对contrib里面的东西了解也不多。突然看代码遇到slim这东西,感觉简直了。谷歌官方的代码里,明明就一个MobileNet,就不能不用contrib里面的东西么?我就不知道有什么骚操作需要用到这里的东西,说好的contrib里面的东西不稳定呢?不稳定还总是用。


到了Tensorflow 2.0后,情况并没有好转。


为了兼容1.x,谷歌也是想方设法的搞。可是,2.x的生态其实连Pytorch的车尾灯都看不到。图个啥?图时不时发觉还是1.x的生态好?

还不如坚守静态图,然后好好梳理一下自己的API!


06 总结


Pytorch依旧上升,而tensorflow的混乱会使得tensorflow会优势渐失,倒向动态图的tensorflow,只会加速自己的消亡。


所以,对于要入坑神经网络的小白,直接扑向Pytorch不要回头;


对于已经在使用Pytorch的,不要心心念念想着Tensorflow,这不是一个香饽饽;


对于已经在Tensorflow浅坑里的,建议马上转向Pytorch,因为你会Tensorflow再学会Pytorch,一周就够了;


对于已经在Tensorflow坑底的,那一定是很大很大的大佬了,框架对你来说已经不是束缚了。


框架是死的,人是活的。两个框架各有千秋,只是Pytorch更有前景。

选择最有前景的,才是最理智的,不要49年入国军。


(*本文为AI科技大本营转载文章,转载联系原作者)

精彩公开课



推荐阅读
  • 你点的每个“在看”,我都认真当成了AI

以上是关于Pytorch和Tensorflow,谁会笑到最后?的主要内容,如果未能解决你的问题,请参考以下文章

特斯拉依旧头铁坚持视觉路线,激光雷达会笑到最后吗?

如何高效入门 PyTorch ?深度学习框架是PyTorch还是TensorFlow?

深度学习平台的未来:谁会赢得下半场?

pytorch 转tensorflow注意

2019 王者之争:与 Tensorflow 竞争白热化,进击的 PyTorch 赢在哪里?

2019机器学习框架之争:与Tensorflow竞争白热化,进击的PyTorch赢在哪里?