[分享]TensorFlow王位不保?ICLR投稿论文PyTorch出镜率快要反超了_AI.人工智能讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  AI.人工智能讨论区 »
总帖数
3
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2549 | 回复: 2   主题: [分享]TensorFlow王位不保?ICLR投稿论文PyTorch出镜率快要反超了        下一篇 
liuliying930406
注册用户
等级:中校
经验:2027
发帖:210
精华:0
注册:2018-10-9
状态:离线
发送短消息息给liuliying930406 加好友    发送短消息息给liuliying930406 发消息
发表于: IP:您无权察看 2018-10-10 9:58:05 | [全部帖] [楼主帖] 楼主


本文转自公众号 麦蒿寺



自PyTorch出道以来,不断有人表示,发现了这样的趋势:

 “学术圈正在慢慢地抛弃TensorFlow,转投PyTorch。”

 如今,PyTorch 1.0发布,ICLR 2019也才截稿不久,又是讨论这个问题的好时节。

 Reddit上面,有小伙伴用非常低碳的方法观察了一下,这两年的论文用的都是什么框架:

 从ICLR 2018到ICLR 2019的投稿来看,TensorFlow、PyTorch和Keras的搜索结果数发生了以下变化。

 TensorFlow 228→266

 PyTorch 87→252

 Keras 42→56

 虽然,三者数据皆有上升,但一年之间PyTorch搜索结果涨幅接近200%,好像已经对TensorFlow的宝座产生了威胁。

 2017年1月19日,PyTorch第一次公开发布,到今天还不到两年,何以发展得这般蓬勃?


 PyTorch可能比较善良

 PyTorch的确有亲和力。

 一是容易上手。只要熟悉Python,就很容易和PyTorch玩耍在一起了。相比之下,学TensorFlow就像在学一种新的语言,语法很复杂,尤其不适合新手。

 二是许多操作都很简洁。比如,Tensor和Numpy之间的互转,可以在PyTorch里优雅地完成,而在TF里就不轻松了。

 三是debug方便。PyTorch作为动态图框架的优势就体现了,像给Python代码debug那样。有人说在TF里debug,还没有肉眼看一遍来得快。

 四是……

 总之,对离开TensorFlow拥抱PyTorch的人类来说,TF的槽点不胜枚举。

 不过,研究人员选择PyTorch的原因,主要是它非常适合小型项目,适合快速的原型设计,诸如此类。

 相对而言,TensorFlow就更适合大规模部署,特别是在需要跨平台部署和嵌入式部署的时候。静态图会方便部署。


 还是离不开TensorFlow?

 即便如此,作为研究人员,也还是有理由继续和TensorFlow在一起。

 上个月,名叫Jeff Hale的数据科学家,做过一次深度学习框架排行榜。

 他收集了各式各样的数据,其中一项就是GitHub活跃度:

 TF的标星(Star) 、分叉(Fork) 、关注量(Watch) 和贡献者(Contributor) 四项指标,对手皆是望尘莫及。

 普及率当仁不让,资源也是最多,许多模型都能找到TF的代码实现。用户量大,遇到问题也容易找到解决的方法。

 成熟的生态系统,大概就是这个样子吧。就算有诸多不便,依然是家园。


 PyTorch 1.0三大更新

 昨天,Facebook在F8大会上发布了PyTorch 1.0 rc1。这次重大更新,主要包括三点:

1、加了个新的混合前端(Hybrid Front End) ,支持从Eager模式到图形模式的追踪,填补研究和生产部署之间的鸿沟;

2、加了个改进过的torch.distributed库,让用户能在Python和C++环境之间,更快地训练模型;

3、加了个Eager模式C++接口,来支持那些需要高性能、低延时才能完成的研究。

 详细资料请至: https://github.com/pytorch/pytorch/releases/

 PyTorch的个位数更新了,TensorFlow还会远么?


 日常预告TensorFlow 2.0

 8月中旬,来自谷歌大脑的Martin Wicke透露,TensorFlow 2.0的一个预览版,在今年晚些时候就会和程序猿们见面了。


他说,大家可以期待以下几点更新:

1、Eager Execution会成为2.0的一个核心功能。这个命令式的编程环境,会让入门TensorFlow变得更容易。

2、支持更多平台、更多语言;通过交换格式的标准化以及API的协调,来提升组件之间的兼容性和对等性。

3、 移除已弃用的API,并减少重复,也是减少用户的困惑。

 这里,强调了让新人更容易上手这一点,也许能挽回一部分望而生畏、准备投奔PyTorch的研究人员。

 往后,TensorFlow和PyTorch之间的比赛,大概会越来越好看。


该贴被huang.wang编辑于2018-10-10 14:09:01



赞(0)    操作        顶端 
liuliying930406
注册用户
等级:中校
经验:2027
发帖:210
精华:0
注册:2018-10-9
状态:离线
发送短消息息给liuliying930406 加好友    发送短消息息给liuliying930406 发消息
发表于: IP:您无权察看 2018-10-10 10:08:18 | [全部帖] [楼主帖] 2  楼


转自公众号机器之心


昨日,Facebook 在首届 PyTorch 开发者大会发布了 PyTorch1.0 预览版,标志着这一框架更为稳定可用。从去年年初发布以来,PyTorch 已经成为明星框架,发展速度甚至有力压 TensorFlow 的趋势。据网友统计,在最新的 ICLR 2019 提交论文中,提及 TensorFlow 的论文数量从 228 升到了 266,而提及 PyTorch 的论文数量从 2018 年的 87 激增到了 252,这是否也是 PyTorch 即将赶超 TensorFlow 的又一证明?


ICLR 提交论文提及频率

今日,Reddit 上的一条帖子吸引了大家的关注:有网友统计,相比于 2018 年,在 ICLR 2019 提交论文中,提及不同框架的论文数量发生了极大变化。

首先,说下 2018 年和 2019 年论文提交数量。ICLR 2019 将于明年 5 月 6 日-9 日在美国新奥尔良举行,今年 9 月 27 日下午 18 时,大会论文提交截止。据统计,ICLR 2019 共收到 1591 篇论文投稿,相比去年的 1000 余篇增长了 60%。

其次,介绍下统计方法,相当简单。在 Frankensteinian search 搜索框下分别搜索提及不同框架的论文结果,如下:

网友发现,提及 TensorFlow 的论文数量从 2018 年的 228 篇略微提升到了 266 篇,Keras 从 42 升到 56,但 Pytorch 的数量从 87 篇提升到了 252 篇。从数据上可以明显看出,采用 PyTorch 的 ICLR 论文在这一年内几乎要超越 TensorFlow。

TensorFlow:228→266

Keras: 42→56

Pytorch:87→252

在 PyTorch 1.0 推出之际,这样的数据统计让我们不得不联想到:TensorFlow 的深度学习框架霸主地位是否还保得住?既然 PyTorch 1.0 预览版已经发布,那么让我们再把两个框架放在一起对比下,看哪一款才是适合你的深度学习框架。


TensorFlow VS PyTorch

自 2015 年开源以来,深度学习框架的天下就属于 TensorFlow。不论是 GitHub 的收藏量或 Fork 量,还是业界使用量都无可比拟地位列第一。

TensorFlow 的版本迭代

但是 TensorFlow 有一个令人诟病的劣势,即它和 Theano 一样采用的是静态计算图,这令神经网络的搭建和入门学习都变得更加困难。因此在 2017 年 1 月,Torch7 团队开源了 PyTorch,它的宗旨是尽可能令深度学习建模更加简单。

                                                     PyTorch 的版本迭代

其实机器之心在很多对比文章中都发现 TensorFlow 的使用在目前来说还是最为广泛的,但是 PyTorch 的发展势头非常迅猛,尤其是在学术研究领域的应用上。那么为什么新近开源的 PyTorch 会那么受欢迎呢,首先我们需要了解深度学习框架的关键点:

易于构建大型计算图

易于在计算图中进行梯度运算

能在 GPU 上高效运行(cuDNN、cuBLA 等)

在后两项中,基本上 TensorFlow 和 PyTorch 都能实现高效的自动微分机制和并行运算机制。但是在第一项中,PyTorch 的哲学是解决当务之急,也就是说即时构建和运行计算图,这与 TensorFLow 先建立静态计算图再发生实际运算相比要简单地多。因此在第一项上,PyTorch 具备很大优势,但是 TensorFlow 的静态计算图更有利于部署模型,且现在同样也非常关注动态计算图。


工业化的缺陷

PyTorch 最开始发布以来,大家都偏向于使用它做学术研究,而不是用于实际生产。主要的原因可能有两点:首先它比较新,还不太成熟,因此很多 API 接口和结构也都不太稳定;其次是动态计算图在部署上不太方便,而像 TensorFlow 这样的静态图可以在不同的环境下调用计算图和对应参数,因此很容易部署到各种产品中。

由于 PyTorch 与 Python 有着紧密的结合,因此将这种动态计算图部署到其它产品会比较困难。不论是训练脚本还是预训练模型,我们经常需要将研究代码转换为 Caffe2 中的计算图表征,从而实现生产规模上的高效使用。其中 Caffe2 项目是两年前提出的,其目的是标准化 AI 模型的生产工具,目前该框架在 Facebook 服务器以及超过 10 亿台手机上运行,横跨了八代 iPhone 和六代安卓 CPU 架构。

之前,从 PyTorch 到 Caffe2 的迁移过程是手动的,耗时间且容易出错。为了解决这个问题,Facebook 与主要的硬件和软件公司合作创建了 ONNX(开放神经网络交换格式),这是一种用于表示深度学习模型的开放格式。通过 ONNX,开发者能在不同的框架间共享模型,例如我们可以导出由 PyTorch 构建的模型,并将它们导入到 Caffe2。

通过 ONNX 和 Caffe2,使用 PyTorch 构建的研究结果可以快速地转化到生产中。而且昨日发布的 PyTorch 1.0 预览版也标志着 PyTorch 开始走向成熟,很多 API 接口和框架结构也都会变得更加稳定,这些都非常有利于将 PyTorch 应用于实际生产中。


性能对比

这两种深度学习框架都有各自的特点,那么它们在相同硬件(GPU)上运行相同神经网络的性能又怎么样?Ilia Karmanov 在 GitHub 上开源了一项测试,他在相同的环境下测试由不同框架编写的相同模型,并借此讨论不同框架的性能。从这些数据中,我们可以了解到在性能上,TensorFlow 和 PyTorch 并不会有显著的差别,不过在特定的任务上还是有一些不同。

项目地址:https://github.com/ilkarman/DeepLearningFrameworks

以下展示了使用 VGG 在 CIFAR-10 上实现图像分类的速度:

以下展示了 DenseNet-121 在 ChestXRay 数据集上的训练速度,在这个图像识别任务中,PyTorch 要比 TensorFlow 表现得更好一些:

如下展示了在 IMDB 数据集上训练门控循环单元(GRU)的速度,它们实现的是情感分析任务。对于循环神经网络,PyTorch 和 TensorFlow 的性能差不多,不过 PyTorch 在 P100 芯片上普遍表现得比 TensorFlow 好。

该项目还有更多的对比与分析,感兴趣的读者可查看原 GitHub 项目。


该贴被liuliying930406编辑于2018-10-10 15:16:25


赞(0)    操作        顶端 
liuliying930406
注册用户
等级:中校
经验:2027
发帖:210
精华:0
注册:2018-10-9
状态:离线
发送短消息息给liuliying930406 加好友    发送短消息息给liuliying930406 发消息
发表于: IP:您无权察看 2018-10-10 10:16:19 | [全部帖] [楼主帖] 3  楼


转发自公众号量子位


【新智元导读】PyTorch仅在一年时间内,数据增长近3倍,大有超越TensorFlow的趋势。现在,PyTorch已经与谷歌TPU协同工作,谷歌不仅仅将TPU用于自己的AI开发框架,还希望尽可能获得更多的云计算客户和研究人员。

框架工具哪家强?TensorFlow的王冠可能要不保。

最近,Reddit上的一位博主简单粗暴的统计了一下2018年至2019年,ICRL论文中所涉及到的主流框架工具TensorFlow、PyTorch和Keras的搜索结果数,变化如下:

TensorFlow:228→266

Keras:42→56

PyTorch:87→252

从使用量来看,TensorFlow最受欢迎的,其次是PyTorch,TensorFlow依旧是当之无愧的老大哥。但是从增长趋势来看,PyTorch仅在一年时间内,数据增长近3倍。

尽管只是统计了ICRL一个会议的论文,但是PyTorch的势头真是猛啊,会不会取代TensorFlow?

今年3月,手握 ArXiv Sanity 大数据、现在主管特斯拉人工智能部门的 Andrej Karpathy,也给出了精确的排名结果(过去一个月内)。

各个框架在论文中被提到(单次计算)的比例分别是:

TensorFlow 14.3%

PyTorch 4.7%

Keras 4.0%

Caffe 3.8%

Theano 2.3%

Torch 1.5%

MXNet、Chainer 和 CNTK 均小于 1%:

也就在昨天,PyTorch刚刚发布1.0预览版,谷歌云表示:“我们也要拿下它!”


谷歌云:热烈欢迎PyTorch

谷歌云表示,随着PyTorch 1.0预览版的到来,其AI平台和服务将支持PyTorch。

PyTorch是一个深度学习框架,旨在实现简单灵活的实验。该框架现在支持完全混合的Python和C / C ++前端,以及生产环境中的快速本机分布式执行。

PyTorch 1.0将即时模式和图形执行模式融合在一起,为生产的研究和性能优化提供了灵活性。更具体地说,PyTorch 1.0不是强制开发者重写整个代码以实现优化或从Python迁移,而是提供了一个混合的前端,使开发者能够在用于原型制作的即时模式和用于生产的图形执行模式之间无缝地共享大部分代码。

此外,ONNX本身被加入到PyTorch 1.0中作为一种模型输出格式,这使得PyTorch 1.0中的模型可与其他AI框架进行互操作。ONNX还可用作加速运行时间或硬件特定库的集成接口。这使得开发人员可以完全自由地混合和匹配最佳的AI框架和工具,而无需采用资源密集型的定制工程。

再来看谷歌云。

虽然TensorFlow江湖地位没的说,但是谷歌云的目标是全方位支持机器学习从业者:包括新手小白学生、企业家,甚至是世界顶尖的研究和工程团队。ML开发人员对框架工具的选择各有不同,谷歌云已经将一些最流行的开源框架集成到产品和服务中,包括TensorFlow、PyTorch、scikit-learn和XGBoost。

在谷歌云的博客中,介绍了在以下几方面对Pytorch1.0的支持:


深度学习VM图像

谷歌云平台提供了一组虚拟机(VM)映像,其中包含使用各种深度学习框架所需的所有内容。谷歌云平台已经提供以社区为中心的PyTorch VM镜像有一段时间了,但随着PyTorch1.0预览版的发布,“特意”提供了一个包含该版本的新VM镜像。

这将是轻松高效使用PyTorch1.0预览版的最快方法:谷歌云已经设置了NVIDIA驱动程序,甚至预装了Jupyter Lab,并提供了示例PyTorch教程。


Kubeflow

Kubeflow是一个开源平台,旨在使端到端ML pipeline易于部署和管理。Kubeflow目前是支持PyTorch的, 其社区已经开发了一个PyTorch包,只需两个命令就可以安装在Kubeflow部署中。

此外,谷歌云还与英伟达合作,在Kubeflow中扩展了TensorRT包,以支持提供PyTorch型号。谷歌云的目标是让Kubeflow成为构建可移植的、可伸缩的和可组合的PyTorch pipeline的最简单方法。


TensorBoard集成

许多PyTorch用户表示,希望与TensorBoard(一种流行的机器学习可视化工具套件)进行更深入的集成。 谷歌云认为这是一个好主意,TensorBoard和PyTorch开发人员现在正在合作,以便更简单地使用TensorBoard来监控PyTorch的训练。

Cloud TPU中的PyTorch


在过去几年中,机器学习的巨大进步很大程度得益于计算机能力的急剧增长,而计算机能力可以用来训练和运行ML模型。

这种巨变促使谷歌开发了三代定制ASIC,称为“Tensor Processing Units”或TPU,专门用于机器学习。谷歌云已将这些芯片的第二代和第三代作为Cloud TPU并将其引入。许多PyTorch用户表示有兴趣通过Cloud TPU加速其ML工作负载。

谷歌云表示,谷歌TPU团队的工程师们正在积极地与PyTorch核心开发者合作,将PyTorch连接到Cloud TPU。长期目标是让每个人都能享受PyTorch的简单性和灵活性,同时受益于Cloud TPU的性能、可伸缩性和成本效率。

作为一个起点,参与的工程师已经制作了一个原型,通过开源线性代数编译器XLA将PyTorch连接到Cloud TPU。 这个原型已经成功地在Cloud TPU上用PyTorch训练ResNet-50,谷歌云计划开源该原型,然后与PyTorch社区合作并将其扩展。 

谷歌云表示,PyTorch1.0只是一个开始,希望能与它有更深入的合作与互动。


谷歌云的野心:TPU加持,拿下开发者

谷歌和Facebook正在联手,让PyTorch与谷歌TPU协同工作,标志着这两家技术竞争对手罕见地达成了合作。

谷歌在2016年的年度开发者大会上首次发布了TPU,并将其作为公司和研究人员推动机器学习软件项目的一种更有效的方式。这家搜索巨头通过其云计算业务来达到销售TPU的目的。

随着越来越多的企业探索机器学习技术,谷歌、Facebook等公司已经创建了自己的人工智能软件框架,基本上是编码工具,目的是让开发人员更容易创建自己的机器学习驱动软件。这些公司还在开源模型中免费提供了这些AI框架,以便在编码器中推广它们。

在过去的几年里,谷歌一直以其所谓的Tensorflow框架作为AI项目的首选编码工具来吸引开发人员,并且开发了TPU,以便更好地与Tensorflow一起工作。谷歌愿意更新其TPU以与Facebook的PyTorch软件合作,这一事实表明,该公司希望支持的不仅仅是自己的AI框架,还可能获得更多可能使用竞争框架的云计算客户和研究人员。

Information Services Group首席分析师Blair Hanley Frank表示,在开发智能系统方面,数据科学家和机器学习工程师有各种各样的开源工具可供选择。“这一合作是至关重要的一步,有助于确保更多的人能够使用最好的硬件和软件能力来创建人工智能模型。”

Frank表示,他预计“人工智能市场将出现更多这样的合作”。

扩展框架支持可以帮助像AWS、谷歌和微软这样的云提供商驱动他们平台的额外使用。弗兰克说,“这意味着他们应该支持尽可能广泛的开发工具,尽可能多地吸引客户。”

除了谷歌,Facebook还表示,亚马逊和微软正在“深化对PyTorch软件的投资”。



该贴被liuliying930406编辑于2018-10-10 15:13:45


赞(0)    操作        顶端 
总帖数
3
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论