网站首页 > 博客文章 正文
机器之心报道
机器之心编辑部
在新版本中,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
struct MyStackClass : torch::CustomClassHolder {
std::vector stack_;
MyStackClass(std::vector init) : stack_(std::move(init)) {}
void push(T x) {
stack_.push_back(x);
}
T pop() {
auto val = stack_.back();
stack_.pop_back();
return val;
}
};
static auto testStack =
torch::class_("myclasses", "MyStackClass")
.def(torch::init())
.def("push", &MyStackClass::push)
.def("pop", &MyStackClass::pop)
.def("size", [](const c10::intrusive_ptr& 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/
- 上一篇: 数据分析师,少一点套路,多一点思路
- 下一篇: 机械工程师收藏:机械专业中英文对照词汇大全(1)
猜你喜欢
- 2024-10-22 架构师之路—基于Java打造接入钉钉机器人实现告警项目
- 2024-10-22 这篇文章带你彻底理解线程(这篇文章带你彻底理解线程的英文)
- 2024-10-22 .NET中的内存管理和垃圾回收,优秀码农必备
- 2024-10-22 Android_内存泄露的原因分析(android内存泄漏原因)
- 2024-10-22 一个注解,实现接口幂等(dao注解写在接口上)
- 2024-10-22 Dart虚拟机启动过程,虚拟机是怎么工作的
- 2024-10-22 《深入理解Java虚拟机》- Java虚拟机是如何加载Java类的?
- 2024-10-22 《每日一道面试题》第三期(每日一练面试常考题)
- 2024-10-22 插件化之VirtualApk实战一:项目配置
- 2024-10-22 你说,怎么把Bean塞到Spring容器?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)