PyTorch 1.5上线:加入稳定C++前端,高级自动梯度API

2020 年 4 月 22 日 机器之心

机器之心报道

机器之心编辑部

在新版本中,Facebook 与 AWS 还合作共同推出了大规模生产级工具库 TorchServe。

今天,PyTorch 1.5 宣布上线,此版本主要包括几个新的 API 的添加和改进。新版 PyTorch 包括对 C++前端的重大更新,用于计算机视觉模型的「channels last」存储格式,以及用于模型并行训练的分布式 RPC 框架的稳定版本。该版本还提供了针对自动求导机制中黑塞和雅可比的新 API,以及受 pybind 启发,允许用户创建自定义 C++类的一个 API。另外,torch_xla 已可在 PyTorch 1.5 版中使用,并在 1.5 版本中进行了测试,可提供成熟的 Cloud TPU 体验。


版本说明:https://github.com/pytorch/pytorch/releases/tag/v1.5.0


主要变化


以下是 PyTorch 1.5 版本的主要变化


C++ 前端 API(稳定型)


现在 C++前端 API 与 Python 版同等丰富,之前实验性的功能都已移到「稳定版」中。主要亮点如下:



专为计算机视觉设计的「Channels last」储存格式(实验型)



「Channels last」储存布局解锁了使用高效卷积算法与硬件的能力。另外,它被设计为在众多运算中自动传播,使得用户能在不同储存布局间轻松切换。


自定义 C++类(实验型)


这次发布的版本中加入了 torch.CutomClassHolder 这一新的 API,能够将自定义的 C++类同时绑定到 TorchScript 和 Python 中。该 API 的用法几乎与 pybind11 相同,它允许用户将自定义的 C++类与方法暴露给 TorchScript 类型的系统,这使得用户能够从 TorchScript 和 Python 中实例化并操纵任意 C++对象。


以下为一个官方给出的实例:


template <class T>
struct MyStackClass :
 torch::CustomClassHolder {
  std::vector<T> stack_;
  MyStackClass(std::vector<T> init) : stack_(std::move(init)) {}

  void push(T x) {
    stack_.push_back(x);
  }
  pop() {
    auto val = stack_.back();
    stack_.pop_back();
    return val;
  }
};

static auto testStack =
  torch::class_<MyStackClass<std::string>>("myclasses""MyStackClass")
      .def(torch::init<std::vector<std::string>>())
      .def("push", &MyStackClass<std::string>::push)
      .def("pop", &MyStackClass<std::string>::pop)
      .def("size", [](const c10::intrusive_ptr<MyStackClass>& self) {
        return self->stack_.size();
      });

上述代码就暴露了一个类,用户可在 TorchScript 和 Python 中用如下方式调用:

@torch.jit.script
def do_stacks(s : torch.classes.myclasses.MyStackClass):
    s2 = torch.classes.myclasses.MyStackClass(["hi""mom"])
    print(s2.pop()) # "mom"
    s2.push("foobar")
    return s2 # ["hi", "foobar"]

分布式 RPC 框架 API(稳定型)

分布式 RPC 框架在 1.4 版中作为实验性功能发布。当前版本涉及大量针对分布式 RPC 框架的可靠性与鲁棒性的功能强化以及错误修复,并加入了如性能调试支持、在 RPC 中使用 TorchScript 功能等一系列新功能。以下为该框架下各种 API 总览:



全新的高级 autograd API(实验型)



PyTorch 将包括 jacobian,hessian,jvp,vjp,hvp 和 vhp 在内的新函数导入到了 torch.autograd.functional 子模块中。这个特性建立在当前的 API 之上,允许用户轻松地执行这些函数。


不再支持 Python 2



从 1.5.0 开始,PyTorch 将不再支持 Python 2,具体来说是 Python 2.7。PyTorch 对 Python 的支持将仅限于 Python 3,特别是 Python 3.5、3.6、3.7 和 3.8(首先在 PyTorch 1.4.0 中启用)。


参考链接:https://pytorch.org/blog/pytorch-1-dot-5-released-with-new-and-updated-apis/



机器之心第二期「AI 开发者成长计划」系列公开课已正式开始,本期主题为《轻松上手开源框架 MindSpore》。该系列课程第一课将于 4 月 23 日 20:00 开讲,欢迎读者报名学习。


登录查看更多
0

相关内容

FPGA加速系统开发工具设计:综述与实践
专知会员服务
65+阅读 · 2020年6月24日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
《动手学深度学习》(Dive into Deep Learning)PyTorch实现
专知会员服务
119+阅读 · 2019年12月31日
专知会员服务
115+阅读 · 2019年12月24日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
谷歌足球游戏环境使用介绍
CreateAMind
33+阅读 · 2019年6月27日
LeetCode的C++ 11/Python3 题解及解释
专知
16+阅读 · 2019年4月13日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
PyTorch 1.0 稳定版正式发布!
新智元
3+阅读 · 2018年12月8日
PyTorch 1.0尝鲜版,这些改进你需要注意
专知
4+阅读 · 2018年10月3日
PyTorch 重大更新,0.4.0 版本支持 Windows 系统
AI研习社
3+阅读 · 2018年4月25日
重磅 | PyTorch 0.4.0和官方升级指南来了!
AI前线
3+阅读 · 2018年4月25日
开发 | PyTorch重大更新,0.4.0版本支持Windows系统
AI科技评论
7+阅读 · 2018年4月25日
A General and Adaptive Robust Loss Function
Arxiv
8+阅读 · 2018年11月5日
Auto-Context R-CNN
Arxiv
4+阅读 · 2018年7月8日
Arxiv
5+阅读 · 2018年1月29日
Arxiv
8+阅读 · 2018年1月25日
Arxiv
4+阅读 · 2015年8月25日
VIP会员
相关VIP内容
FPGA加速系统开发工具设计:综述与实践
专知会员服务
65+阅读 · 2020年6月24日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
《动手学深度学习》(Dive into Deep Learning)PyTorch实现
专知会员服务
119+阅读 · 2019年12月31日
专知会员服务
115+阅读 · 2019年12月24日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
相关资讯
谷歌足球游戏环境使用介绍
CreateAMind
33+阅读 · 2019年6月27日
LeetCode的C++ 11/Python3 题解及解释
专知
16+阅读 · 2019年4月13日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
PyTorch 1.0 稳定版正式发布!
新智元
3+阅读 · 2018年12月8日
PyTorch 1.0尝鲜版,这些改进你需要注意
专知
4+阅读 · 2018年10月3日
PyTorch 重大更新,0.4.0 版本支持 Windows 系统
AI研习社
3+阅读 · 2018年4月25日
重磅 | PyTorch 0.4.0和官方升级指南来了!
AI前线
3+阅读 · 2018年4月25日
开发 | PyTorch重大更新,0.4.0版本支持Windows系统
AI科技评论
7+阅读 · 2018年4月25日
相关论文
A General and Adaptive Robust Loss Function
Arxiv
8+阅读 · 2018年11月5日
Auto-Context R-CNN
Arxiv
4+阅读 · 2018年7月8日
Arxiv
5+阅读 · 2018年1月29日
Arxiv
8+阅读 · 2018年1月25日
Arxiv
4+阅读 · 2015年8月25日
Top
微信扫码咨询专知VIP会员