圆栗子 发自 麦蒿寺 量子位 出品 | 公众号 QbitAI
自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。这次重大更新,主要包括三点:
· 加了个新的混合前端 (Hybrid Front End) ,支持从Eager模式到图形模式的追踪,填补研究和生产部署之间的鸿沟;
· 加了个改进过的torch.distributed库,让用户能在Python和C 环境之间,更快地训练模型;
· 加了个Eager模式C 接口,来支持那些需要高性能、低延时才能完成的研究。
详细资料请至:
https://github.com/pytorch/pytorch/releases/
PyTorch的个位数更新了,TensorFlow还会远么?
日常预告TensorFlow 2.0
8月中旬,来自谷歌大脑的Martin Wicke透露,TensorFlow 2.0的一个预览版,在今年晚些时候就会和程序猿们见面了。
他说,大家可以期待以下几点更新:
· Eager Execution会成为2.0的一个核心功能。这个命令式的编程环境,会让入门TensorFlow变得更容易。
· 支持更多平台、更多语言;通过交换格式的标准化以及API的协调,来提升组件之间的兼容性和对等性。
· 移除已弃用的API,并减少重复,也是减少用户的困惑。
这里,强调了让新人更容易上手这一点,也许能挽回一部分望而生畏、准备投奔PyTorch的研究人员。
往后,TensorFlow和PyTorch之间的比赛,大概会越来越好看。