势头强劲: PyTorch周年大事记盘点

【导读】 1月19日,PyTorch团队对PyTorch发布一年来的成长轨迹做了总结。在过去一年里,PyTorch资源包的下载量超50万次、PyTorch频频出现在各种会议中。然后强调了,PyTorch社区的众多成员对PyTorch做了很多贡献,使其变得更好用、更强大。最后推荐了出官方文档之外,一些好用PyTorch教程和书籍。PyTorch作为当前python深度学习的流行框架,在过去一年了展现了强大的生命力和前景,本文对PyTorch做了很全面的总结,值得所有深度学习从业者和研究人员深入了解!

专知公众号以前推出PyTorch手把手系列教程:

  1. < 一文带你入门优雅的Pytorch >
  2. < 快速理解系列(一): 图文+代码, 让你快速理解CNN>
  3. < 快速理解系列(二): 图文+代码, 让你快速理解LSTM>
  4. < 快速理解系列(三): 图文+代码, 让你快速理解GAN >
  5. < 快速理解系列(四): 图文+代码, 让你快速理解Dropout >
  6. < NLP系列(一) 用Pytorch 实现 Word Embedding >
  7. < NLP系列(二) 基于字符级RNN的姓名分类 >
  8. < NLP系列(三) 基于字符级RNN的姓名生成 >

PyTorch的过往一年

到今天PyTorch公开发布已经有一年了。 这是一个疯狂的过程 ,我们一直在追求建立一个灵活的深度学习研究平台。 在过去的一年中,我们看到了一群非常棒的人使用,贡献和传播PyTorch - 感谢你的爱。

回首过去,我们从在过去一年里总结PyTorch:来自社区的进展,新闻和亮点。

  • 社区

我们给予这个强大社区中爱上pytorch的研究人员和工程师最好的祝福。 核心团队拥有来自多个国家,公司和大学的工程师和研究人员,如果没有他们的贡献,我们不可能使PyTorch成为事实。

  • 研究论文,软件包和Github

发布后的几天内,社区用户开始在PyTorch中实现他们最喜爱的研究论文,并且在Github上发布相关代码。 开源代码是目前研究人员使用的主要工具。

人们通过网络聚集在一起创造torchtext,torchvision和torchaudio包,从而帮助促进不同领域上的研究。

第一个基于PyTorch的社区软件包来自Brandon Amos,其标题为“块” (Block),这个软件包功能在于更容易地处理块矩阵(Block matrix)。 CMU的Locus实验室随后发布了PyTorch软件包,里面包含了他们大部分研究的实现。 Zagoruyko的Paying more attention to attention.是第一个研究论文代码。

Jun-Yan Zhu, Taesung Park, Phillip Isola, Alyosha Efros和来自伯克利的团队发布了非常受欢迎的Cycle-GAN和pix2pix,其功能在于对图像进行图像转换。

来自HarvardNLP和Systran的研究人员开始开发和改进PyTorch中的OpenNMT,来源于Facebook上重新实现了来自Adam Lerer的[Lua] Torch代码。

来自Twitter上的MagicPony团队基于PyTorch的例子中提供了他们超分辨率恢复的实现。

Salesforce Research发布了多个软件包,其中包括PyTorch-QRNN,这是一种RNN,比由CuDNN优化的标准LSTM快2到17倍。 詹姆斯·布拉德伯里(James Bradbury)和团队是PyTorch社区中最活跃和最有魅力的部队之一。

Uber,Northeastern和Stanford的研究人员聚集在一起,围绕着Pyro和ProbTorch建成了一个活跃的概率编程社区。 他们正在积极开发torch.distributions核心程序包。 这个社区十分活跃并且在快速发展,我们在NIPS 2017上与Fritz Obermeyer,Noah Goodman,Jan-Willem van de Meent,Brooks Paige,Dustin Tran以及另外22位与会者进行了第一次碰面,并且讨论如何让这个世界贝叶斯化。

NVIDIA研究人员发布了三个高质量的存储库,这些库实现了pix2pix-HD,Sentiment Neuron和FlowNet2论文。 他们的PyTorch中不同数据并行模型的可伸缩性的分析工作对于社区是有帮助的。

Allen Allen研究所发布了AllenNLP,其中包括NLP中的几种最先进的模型 - 参考实现和用于标准NLP任务易于使用的Web演示。

去年七月,Kaggle的获胜队grt123,他们在肺癌检测的工作赢得DataScience Bowl 2017,随后发布了他们的PyTorch实现。

在可视化领域,Tzu-Wei Huang实现了一个TensorBoard-PyTorch插件,并且Facebook AI Research发布了visdom可视化包PyTorch兼容版本。

最后,Facebook AI Research发布了几个项目,如ParlAI,fairseq-py,VoiceLoop和FaderNetworks,这些项目实现了多领域的顶尖模型和接口数据集。

我们也对那些在论坛上积极帮助别人的人们给予感谢,特别是ptrblck,jpeg729,QuantScientist,albanD,tom和chenyuntc。 您提供了非常宝贵的服务,非常感谢!

  • 数据

就纯粹的数字而言,

github上的87,769行Python代码导入了torch

Github上的3,983个资源库在它们的名字或者描述中提及到PyTorch

PyTorch二进制文件下载超过50万次,准确来说是 651,916次。

5,400名用户撰写了21,500篇文章,这些文章中涉及到5,200个话题:

自发布之日起,在Reddit的/ r / machinelearning上PyTorch被提及了131次。 在同一时期,TensorFlow被提及255次。

  • 研究数据

PyTorch是一个以研究为中心的框架。 所以感兴趣的指标之一就是在机器学习研究论文中PyTorch使用量。

在最近的ICLR2018会议上,PyTorch在87篇论文中被提到,而TensorFlow在228篇论文中被提到,Keras在42篇论文中被提到,Theano和Matlab在32篇论文中被提到。

每月arxiv.org提到的框架中,PyTorch为72次,TensorFlow为273次,Keras为100次,Caffe为94次,Theano为53次。

  • 课程,教程和书籍

当我们发布PyTorch时,我们有很好的API文档,但是我们的教程仅限于几个ipython笔记本 -,这些笔记虽然很有帮助,但还不够好。

Sasank Chilamkurthy自己将教程网站修改的更加漂亮。

Sean Robertson和Justin Johnson在NLP上写了很棒的新教程,通过实例进行讲解。 Yunjey Choi写了一个漂亮的教程,大多数模型在30行以内实现。 每个新的教程采用不同的学习方法,最终帮助用户更快地找到方法。

Goku Mohandas和Delip Rao将他们正在编写的书的代码内容切换到PyTorch框架。

我们已经看到不少大学的机器学习课程被PyTorch教为主要工具,如哈佛大学的CS287。我们有三个在线课程弹出教导使用PyTorch。

Fast.ai的“Deep Learning for Coders”是一个流行的在线课程。 去年9月,Jeremy和Rachel宣布下一个fast.ai课程将几乎完全基于PyTorch。

新加坡国立大学和清华大学兼职研究员Ritchie Ng发布了一个名为PyTorch实用深度学习的Udemy课程。

香港科技大学的Sung Kim在Youtube上发布了一个针对普通观众的在线课程,名为“PyTorch Zero to All”。

  • 工程项目

在过去的一年里,我们实现了多种功能,全面提高了性能,并修复了大量的错误。 我们所做的工作的完整列表可以在我们的发行说明中找到。 以下是去年我们工作的重点:

  • 高阶梯度

随着一些采用梯度处罚的论文的发表以及二阶梯度方法的不断研究,这是一个重要且受欢迎的特征。 在8月份,我们实现了一个可以采用n阶导数的广义接口,并且随着时间的推移增加了支持高阶梯度的函数的覆盖范围,因此几乎所有的操作都支持这个接口。

  • 分布式PyTorch

8月份,我们发布了一个小型的分布式软件包,采用了非常受欢迎的MPI集体方法。 该软件包有多个后端,例如TCP,MPI,Gloo和NCCL2,从而支持各种类型的CPU / GPU集合操作和用例,并集成了Infiniband和RoCE等分布式技术。 分布式是很难的,我们在最初的迭代中有错误。 在随后的发布中,我们使这个软件包更加稳定,性能也得到了提升

  • 接近NumPy

用户最大的需求之一就是他们熟悉的NumPy功能。 诸如广播和高级索引之类的功能是方便的,并且为用户节省了大量的冗长。 我们实现了这些功能,并开始调整我们的API以更接近NumPy。 随着时间的推移,我们希望在适当的适当的地方能够采用越来越接近NumPy的API。

  • 稀疏张量

今年3月,我们发布了一个支持稀疏张量的小包,5月份我们发布了对这个稀疏包的CUDA支持。 该包体积小,功能有限,用于实现稀疏嵌入和深度学习中常用的稀疏范式。 这个软件包的规模还很小,并且需要扩展它 - 如果你有兴趣扩展这个稀疏软件包,请在讨论版上联系我们

  • 性能

性能始终是一场持续的战斗,对想将灵活性最大化的动态框架PyTorch来说更是如此。在过去的一年里,PyTorch改进了从核心的张量库到神经网络operator的性能,能在board上快速编写微优化。

我们为张量操作添加了专门的AVX和AVX2内在函数

为频繁的工作负载(如串联和Softmax)编写更快的GPU内核(包括许多其他功能)

重写了几个神经网络算子的代码,但值得注意的是nn.Embedding和组卷积。

  • 跨板减少10倍的框架开销

由于PyTorch是一个动态图形框架,我们在训练循环的每一次迭代中动态创建一个新图形。 因此,框架开销必须很低,或者工作负载必须足够大,以至于可以隐藏框架开销。 在八月份,DyNet(Graham Neubig和他的团队)的作者表示,它比PyTorch在小型NLP模型上快得多。 这是一个有趣的挑战,我们没有意识到这些尺寸的模型正在被训练。 在为期数月(持续)的努力中,我们着手对PyTorch内部进行重大改写,将每个运营商执行时间超过10微秒的框架开销降低到1微秒。

ATen

重新设计PyTorch内部时,我们构建了现在支持所有PyTorch后端的ATen C ++ 11库。 ATen拥有一个反映PyTorch Python API的API,这使得它成为一个便捷的用于张量计算的C ++库。 ATen可以独立于PyTorch来构建和使用。

  • 输出模型到生产——支持ONNX和JIT编译器

将PyTorch模型导出到另一个框架是我们经常收到的一个请求。用户在PyTorch完成模型后,想将其搭载到更大项目,但有时会遇到只能使用C++的情况。

因此,PyTorch建立了一个tracer,可将PyTorch模型输出为中间表示,用户可将其转换为ONNX格式输出至Caffe2、MXNet、TensorFlow等其他框架中,或直接连接到 CoreML或TensorRT这样的硬件加速库。今年,我们将更多地利用 JIT 编译器提升性能。

原文链接:

http://pytorch.org/2018/01/19/a-year-in.html

原文发布于微信公众号 - 专知(Quan_Zhuanzhi)

原文发表时间:2018-01-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI研习社

想快速部署机器学习项目?来看看几大主流机器学习服务平台对比吧

日前,kdnuggets 上的一篇文章对比了三大公司(谷歌、微软和亚马逊)提供的机器学习服务平台,对于想要启动机器学习项目的公司或是数据科学新手来说,提供了非常...

54417
来自专栏CDA数据分析师

【资源】想进行数据科学项目却没有数据集?25个数据集网站汇总

原作者 Kunal Jain 编译  Mika 本文为 CDA 数据分析师原创作品,转载需授权 前言 如果用一个句子总结学习数据科学的本质,那就是: 学习数据科...

5348
来自专栏媒矿工厂

PCS2018:360度全景视频流媒体传输系统【附PPT全文】

作为图像/视频编码领域的顶级会议之一,第33届图像编码研讨会(PCS,Picture Coding Symposium)于2018年6月24号至6月27号在加州...

2163
来自专栏ATYUN订阅号

一份在移动应用程序项目中使用机器学习的指南

机器学习是人工智能的核心,旨在创建一个解决类似问题的通用方法。机器学习已经被整合到我们经常在日常生活中使用应用中,比如iPhone的Siri。本文是一个包含了如...

3596
来自专栏数据魔术师

从小白到年薪10万+,优秀的数据分析能力如何速成?

3907
来自专栏新智元

【独家揭秘】机器学习分析 47 万微信群,发现 9 大规律

【新智元导读】微信群已经进入到我们的日常生活中,成为社交关系的主要纽带。但微信群有自己的规律,长期群能存活很长的时间,临时群则转瞬即逝。来自清华大学、康奈尔大学...

4286
来自专栏ATYUN订阅号

【业界】高通公司推出专为物联网边缘计算而设计的视觉智能系统芯片

高通公司周三推出智能系统芯片QCS605和QCS603,其结合了图像信号处理器、AI、CPU和GPU技术,以支持各种相机应用、机器人和智能显示器。 高通物联网产...

3129
来自专栏灯塔大数据

【揭秘】47万微信群和2亿微信用户背后的数字规律

导读 这是一篇来自清华大学、康奈尔大学、腾讯公司和香港科技大学的研究人员采用“机器学习算法”,分析了47万+微信群、2亿+微信用户、6亿+好友关系和200万+邀...

3154
来自专栏大数据文摘

通过R让你的复杂网络图更具艺术感

6244
来自专栏机器之心

业界 | 剖析用于深度学习的硬件:GPU、FPGA、ASIC和DSP

选自Medium 作者:Eugenio Culurciello 机器之心编译 参与:Rick R、吴攀 在这篇文章中,作者Eugenio Culurciel...

33710

扫码关注云+社区

领取腾讯云代金券