2018 年 5 月 2 日
通往 1.0 版本的道路:生产就绪的 PyTorch
我们将为您展示 PyTorch 1.0 的路线图预览,这是 PyTorch 的下一个版本。在过去的一年里,我们发布了 0.2、0.3 和 0.4 版本,将 PyTorch 从类似[Torch+Chainer]的接口转变为更简洁的界面,增加了双向反向传播、类似 NumPy 的函数、高级索引,并移除了 Variable 模板代码。目前,我们相信 API 已经处于合理且稳定的状态,可以自信地发布 1.0 版本。然而,1.0 不仅仅关乎接口的稳定性。一...
2018 年 4 月 22 日
PyTorch 0.4.0 迁移指南
欢迎阅读 PyTorch 0.4.0 的迁移指南。在这个版本中,我们引入了许多令人兴奋的新功能和关键错误修复,目标是提供更好、更简洁的接口。在本指南中,我们将介绍迁移现有代码到先前版本时最重要的更改:张量和变量的合并、支持 0 维(标量)张量、废弃 volatile 标志、数据类型、设备以及 NumPy 风格的张量创建函数。
2018 年 3 月 5 日
PyTorch 中的张量推导式(Tensor Comprehensions)
张量推导式(Tensor Comprehensions,TC)是一个降低编写高性能代码门槛的工具。它可以从简单的高级语言生成 GPU 代码,并针对特定的输入大小自动调整代码。我们强烈建议先阅读 Tensor Comprehensions 博客文章。如果你遇到过以下任何一种情况,TC 对你来说会是一个有用的工具。你的 PyTorch 层庞大且缓慢,你考虑过为其编写专门的 C++或 CUDA 代码。但你不知道如何用 CUDA 编程或编写底层代码。你编写了一个 CUDA 层,但花费了一周时间来编写、调试和优化速度。你希望自己能在一小时内完成这项工作。你想为了速度融合网络中的多个层,例如 Conv-ReLU-BatchNorm 或 Linear-ReLU-Linear-ReLU,但这理解和实现起来相当困难。你的研究涉及 CuDNN 和 MKL 未优化的奇怪张量形状。例如,你对 143 x 55 的输入图像进行 13 x 24 的卷积。你尝试用 CuDNN 运行它,但速度比你希望的要慢。
2018 年 1 月 19 日
PyTorch,一年回顾...
今天是 PyTorch 公开发布一周年的日子。这一年,我们经历了惊心动魄的旅程——我们的目标是构建一个灵活的深度学习研究平台。在过去的一年里,我们见证了一个令人惊叹的社区,人们在使用、贡献和推广 PyTorch——感谢你们的喜爱。回顾过去,我们希望总结过去一年的 PyTorch:进展、新闻和社区亮点。社区我们很幸运地拥有一个强大的自然社区,包括研究人员和工程师...
2017 年 6 月 27 日
PyTorch 内部揭秘 II - 构建系统
在第一篇帖子中,我解释了如何生成一个可以在 Python 解释器中使用的 torch.Tensor 对象。接下来,我将探讨 PyTorch 的构建系统。PyTorch 代码库包含各种组件:核心 Torch 库:TH、THC、THNN、THCUNN;供应商库:CuDNN、NCCL;Python 扩展库;以及其他第三方库:NumPy、MKL、LAPACK。简单的 python setup.py install 命令是如何工作的,使得你可以调用 import torch 并使用...
2017 年 5 月 11 日
PyTorch 内部结构探秘(第一部分)
PyTorch 的基本单元是 Tensor。本文将概述我们在 PyTorch 中实现 Tensor 的方法,以便用户可以从 Python shell 与之交互。特别是,我们想要回答以下四个主要问题:PyTorch 是如何扩展 Python 解释器以定义一个可以从 Python 代码中操作的 Tensor 类型的?PyTorch 是如何封装定义 Tensor 属性和方法的 C 库的?PyTorch 的 cwrap 是如何工作的以生成...