前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyTorch发布一周年:盘点社区和工程大事件,后来者居上态势已显?

PyTorch发布一周年:盘点社区和工程大事件,后来者居上态势已显?

作者头像
量子位
发布2018-01-24 17:38:45
8470
发布2018-01-24 17:38:45
举报
文章被收录于专栏:量子位量子位

安妮 编译自 PyTorch官网

今天,PyTorch公开发布一周年了。

这个自诞生之日起就火热的深度学习框架,这一年是怎样的成长轨迹?刚刚,PyTorch团队在官网上发文,盘点了PyTorch上一年的进展、大事件和社区情况,并和其他框架进行了对比。

总体来说战绩是这样的——

  • GitHub上有87769行Python代码导入了torch
  • GitHub上3983个资源库在命名或描述中提到了PyTorch
  • PyTorch文件的下载量超50万次,具体说达到了651916次
  • 5400个用户写了21500篇帖子,在论坛上讨论过5200个话题
  • 在Reedit机器学习版块被被提及达131次,而TensorFlow在这段时间仅被提及255次

PyTorch也频频出现在各种会议中——

  • 在最近的ICLR2018中提交的论文中,有87篇提到PyTorch。同时有228篇提到TensorFlow,42篇提到Keras,32篇提到Theano和Matlab
  • arXiv每月平均提到PyTorch 72次,TensorFlow 273次,Keras 100次,Caffe 94次,Theano 53次

这些对比数据之外,PyTorch团队还整理了这一年社区的大事件和突破性进展。量子位则其重点,编译整理如下:

社区大事件

第一个现身社区的PyTorch程序包来自CMU博士Brandon Amos,他帮助简化了矩阵块的操作。

Jun-Yan Zhu, Taesung Park, Phillip Isola, Alyosha Efros和UC伯克利的团队发布了人气很高的Cycle-GAN and pix2pix,实现了图像到图像的转换。

项目地址: https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

哈佛大学自然语言研究组(HarvardNLP)和Systran团队构建并改善PyTorch中OpenNMT系统。

项目地址: https://github.com/OpenNMT/OpenNMT-py

推特上的MagicPony团队贡献了超分辨率工作的进展。

介绍地址: https://twitter.com/Rob_Bishop/status/821793080877588480

Salesforce 研究院发布了一些程序包,包括PyTorch-QRNN。这是一种RNN,比CuDNN优化的标准LSTM快2倍到17倍,James Bradbury和他的团队也因此成为PyTorch社区中最活跃和最引人注目的力量之一。

PyTorch-QRNN项目地址: https://twitter.com/Smerity/status/917472260851560448

Uber、美国东北大学和斯坦福的研究团队围绕Pyro和ProbTorch组了一个概率编程社区,积极开发torch分布的核心程序包。

英伟达的研究人员发布了三个高质量的库,可以实现pix2pix-HD、Sentiment Neuron和FlowNet2的相关论文,他们还分析了PyTorch中不同数据并行模型的可扩展性。

相关项目地址: https://github.com/NVIDIA/sentiment-discovery https://github.com/NVIDIA/flownet2-pytorch https://github.com/NVIDIA/sentiment-discovery/blob/master/analysis/scale.md

艾伦研究院(Allen Institute for AI)发布了AllenNLP,里面包括先进的NLP模型参考实现,易于将web demo用于标准的NLP任务。

项目地址: http://demo.allennlp.org/machine-comprehension

去年7月,Kaggle团队grt123夺冠关于肺癌检测的DataScience Bowl 2017,随后发布了他们的PyTorch实现。

项目地址: https://twitter.com/PyTorch/status/881573658166267904

在可视化方面,Tzu-Wei Huang实现了TensorBoard-PyTorch插件,Facebook的人工智能研究也为他们的visdom可视化包发布了PyTorch兼容版。

相关项目地址: https://github.com/lanpa/tensorboard-pytorch https://github.com/facebookresearch/visdom

此外,Facebook AI研究院还发布了一些其他的项目,比如ParlAI、fairseq-py、VoiceLoop and FaderNetwork等,在多个领域实现了先进的模型和接口数据集。

工程大事件

在过去一年,PyTorch团队实现了多个功能,提高了性能。我们一起回顾一下:

高阶梯度

去年8月,PyTorch实现了一个可以接收n阶导数的通用接口,并增加了支持高阶梯度函数的范围。

分布式PyTorch

还是去年8月,PyTorch发布了小型分布式软件包,它用到了流行的MPI集合(MPI-collective)方法。该软件包有多个后端,如TCP、MPI、Gloo和NCCL2等,来支持各种类型的CPU/GPU集成操作和用例,并包含Infiniband和RoCE等分布式技术。

更接近NumPy

用户最大的需求之一是他们熟悉的NumPy特性。broadcasting和高级索引等功能很方便,为用户节省了大量时间。PyTorch实现了这些特性,并让API更接近NumPy。

稀疏张量

去年三月,PyTorch发布了一个支持稀疏张量的小程序包,五月发布了CUDA支持的稀疏包。该程序包可以实现深度学习中常用的稀疏范例的稀疏嵌入。

性能

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

PyTorch为张量操作添加了专门的AVX和AVX2内联函数

编写了更快的GPU内核,用于常用的工作负载中

重写了几个神经网络operator的代码,如nn.Embedding等

此外,PyTorch将框架的开销减小了10倍

这事源于去年8月,DyNet的作者Graham Neubig等人展示了DyNet在小型NLP模型上的速度比PyTorch要快得多。之后,PyTorch重写了内部架构,将每个operator执行框架的开销从10微秒减少到1微秒。

ATen

重新设计PyTorch内部架构时,PyTorch团队还建造了ATen C++11库,现在所有的PyTorch后端都可以使用它。

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

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

因此,PyTorch建立了一个tracer,可将PyTorch模型输出为中间表示,用户可将其转换为ONNX格式输出至Caffe2、MXNet、TensorFlow等其他框架中,或直接连接到 CoreML或TensorRT这样的硬件加速库。

祝PyTorch一周岁生日快乐。

最后,附原文链接: http://pytorch.org/2018/01/19/a-year-in.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 社区大事件
  • 工程大事件
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档