Pytorch和Tensorflow,谁会笑到最后?-程序员宅基地

作者 | 土豆变成泥

来源 | 知秋路(ID:gh_4a538bd95663)

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

01 在学术界Pytorch已经超越Tensorflow

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

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

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

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

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

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

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

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

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

而如果采用部署生态尚不成熟的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混乱。

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科技大本营转载文章,转载联系原作者)

精彩公开课

推荐阅读

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/103692317

智能推荐

http隧道 java_使用java语言实现http隧道技术-程序员宅基地

文章浏览阅读119次。该楼层疑似违规已被系统折叠隐藏此楼查看此楼/***Getaparametervalue**@paramkeyString*@paramdefString*@returnString*/publicStringgetParameter(Stringkey,Stringdef){returnisStandalone?System.getProperty(ke..._java http隧道

Keepalived高可用+邮件告警_keepalived sendmail-程序员宅基地

文章浏览阅读913次。IP主机名备注192.168.117.14keepalived-master主节点192.168.117.15keepalived-slaver备节点192.168.117.100VIP1.主备节点均安装keepalived# yum install -y keepalived httpd2.主备节点均修改keepalived日志存放路径..._keepalived sendmail

SPFILE 错误导致数据库无法启动(ORA-01565)_ora01565 ora27046-程序员宅基地

文章浏览阅读469次。--==========================================--SPFILE错误导致数据库无法启动(ORA-01565)--========================================== SPFILE错误导致数据库无法启动 SQL> startup ORA-01078: failurein proce_ora01565 ora27046

功能测试基础知识(1)-程序员宅基地

文章浏览阅读6.1k次,点赞2次,收藏54次。功能测试基础知识总结_功能测试

postgresql 中文排序_pg中文排序-程序员宅基地

文章浏览阅读3.2k次,点赞3次,收藏2次。pg 中文首字母排序_pg中文排序

[Mysql] CONVERT函数_mysql convert-程序员宅基地

文章浏览阅读3.1w次,点赞23次,收藏109次。本文主要讲解CONVERT函数_mysql convert

随便推点

HTML5与微信开发(2)-视频播放事件及API属性_微信开发者工具视频快进-程序员宅基地

文章浏览阅读8.6k次,点赞2次,收藏2次。HTML5 的视频播放事件想必大家已经期待很久了吧,在HTML4.1、4.0之前我们如果在网页上播放视频无外乎两种方法: 第一种:安装FLASH插件或者微软发布的插件 第二种:在本地安装播放器,在线播放组件之类的 因为并不是所有的浏览器都安装了FLASH插件,就算安装也不一定所有的都能安装成功。像苹果系统就是默认禁用FLASH的,安卓虽然一开始的时候支持FLASH,但是在安卓4.0以后也开始不_微信开发者工具视频快进

JedisConnectionException Connection Reset_jedisconnectionexception: java.net.socketexception-程序员宅基地

文章浏览阅读5.4k次,点赞3次,收藏4次。在使用redis的过程常见错误总结1.JedisConnectionException Connection Reset参考这边文章:Connection reset原因分析和解决方案https://blog.csdn.net/cwclw/article/details/527971311.1问题描述Exception in thread "main" redis.clients...._jedisconnectionexception: java.net.socketexception: connection reset

Lua5.3版GC机制理解_lua5.3 gc-程序员宅基地

文章浏览阅读8.3k次,点赞8次,收藏42次。目录1.Lua垃圾回收算法原理简述2.Lua垃圾回收中的三种颜色3.Lua垃圾回收详细过程4.步骤源码详解4.1新建对象阶段4.2触发条件4.3 GC函数状态机4.4标记阶段4.5清除阶段5.总结参考资料lua垃圾回收(Garbage Collect)是lua中一个比较重要的部分。由于lua源码版本变迁,目前大多数有关这个方面的文章都还是基于lua5.1版本,有一定的滞后性。因此本文通过参考当前..._lua5.3 gc

手机能打开的表白代码_能远程打开,各种手机电脑进行监控操作,最新黑科技...-程序员宅基地

文章浏览阅读511次。最近家中的潮人,老妈闲着没事干,开始学玩电脑,引起他的各种好奇心。如看看新闻,上上微信或做做其他的事情。但意料之中的是电脑上会莫名出现各种问题?不翼而飞的图标?照片又不见了?文件被删了,卡机或者黑屏,无声音了,等等问题。常常让她束手无策,求助于我,可惜在电话中说不清,往往只能苦等我回家后才能解决,那种开心乐趣一下子消失了。想想,这样也不是办法啊, 于是,我潜心寻找了两款优秀的远程控制软件。两款软件...

成功Ubuntu18.04 ROS melodic安装Cartograhper+Ceres1.13.0,以及错误总结_ros18.04 安装ca-程序员宅基地

文章浏览阅读1.8k次。二.初始化工作空间三.设置下载地址四.下载功能包此处可能会报错,请看:rosdep update遇到ERROR: error loading sources list: The read operation timed out问题_DD᭄ꦿng的博客-程序员宅基地接下来一次安装所有功能包,注意对应ROS版本 五.编译功能包isolated:单独编译各个功能包,每个功能包之间不产生依赖。编译过程时间比较长,可能需要几分钟时间。此处可能会报错:缺少absl依赖包_ros18.04 安装ca

Harbor2.2.1配置(trivy扫描器、镜像签名)_init error: db error: failed to download vulnerabi-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏7次。Haobor2.2.1配置(trivy扫描器、镜像签名)docker-compose下载https://github.com/docker/compose/releases安装cp docker-compose /usr/local/binchmod +x /usr/local/bin/docker-composeharbor下载https://github.com/goharbor/harbor/releases解压tar xf xxx.tgx配置harbor根下建立:mkd_init error: db error: failed to download vulnerability db: database download

推荐文章

热门文章

相关标签