PyTorch团队2017年六大核心突破
极客时间编辑部
讲述:丁婵大小:1.62M时长:03:32
自 Facebook 开源 PyTorch 以来,短短一年时间内,PyTorch 就发展成为一线开发者争相使用的工具。近日,在开源一周年纪念日上,其开发团队在官方博客上发表文章,总结了 PyTorch 在这一年间取得的进展。
PyTorch 发布之后,一些用户很快就利用 PyTorch 实现了他们喜欢的论文,并在 Github 上发布代码。现阶段,开源代码是研究人员的重要工具,他们创造出了 torchtext,torchvision 和 torchaudio 工具包,帮助加快 PyTorch 在不同领域的发展。
据统计,目前,Github 上共有 87769 行 Python 代码引入了 torch;PyTorch 文件的下载量超过了 65 万次。
同时,过去一年间,官方团队还完善了 PyTorch 的多项功能,改进性能,并修复了大量 bug。以下是过去一年间的一些瞩目突破:
1. 高阶梯度
随着梯度惩罚在多篇论文中的实现,以及随之而来的对二阶梯度法的研究,在 PyTorch 中实现高阶梯度必不可少。2017 年 8 月,PyTorch 团队实现了一个通用接口,支持 n 阶导数,同时增加了支持高阶梯度函数的量。
2. 分布式 PyTorch
2017 年 8 月,该团队发布了一个小的分布式工具包,集合了许多流行的 MPI 方法。这个工具包覆盖 CP、MPI、Gloo 和 NCCL2 等很多后端,支持多种类型的 CPU/GPU 集合操作和用例,并集成了 Infiniband 和 RoCE 等分布式技术。
3. 与 NumPy 联系更紧
用户最大的需求之一是 NumPy 功能,在这些功能中,Broadcasting 和 Advanced Indexing 都很方便,可以帮助用户减少冗余。PyTorch 目前可以支持这些特性,它的 API 逐渐向 NumPy 靠拢。
4. 稀疏张量工具包
2017 年 3 月,该团队发布了一个支持稀疏张量的小工具包,基于这个工具包,他们在 5 月发布了带有 CUDA 支持的工具包。这个工具包很小,功能有限,用于实现 Sparse Embedding 以及深度学习中常用的稀疏范例。
5. 性能
对 PyTorch 这样一个动态框架来说,性能的提升是一场持久战。在过去的一年里,该团队极力提升其灵活性,从核心张量库到神经网络运算,PyTorch 的性能得到了极大提升,例如针对张量操作增加了 AVX 和 AVX2;重写了若干神经网络运算的代码等。
6. 从模型输出到生产
考虑到用户模型迁移的需求,该团队们在 PyTorch 中构建了一个 tracer,它能将 PyTorch 模型输出为中间表示。人们可以利用随后的 trace 高效执行当前的 PyTorch 模型,或者将其转换成 ONNX 格式,加载到 Caffe2、MXNet、TensorFlow 等框架中,还可以直接加载到 CoreML 或 TensorRT 等硬件加速库。
最后,该团队还表示,接下来一段时间,大家会听到更多关于 JIT 编译器的消息,它能改善 PyTorch 的性能。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论