Python 张量与动态神经网络 PyTorch 1.0 发布了。 此版本的主要亮点包括JIT 编译、全新并且更快的分布式库与 C++ 前端等。 JIT 编译器 JIT(Just-In-Time)是一组编译工具,用于弥合 PyTorch 研究与生产之间的差距。 它允许创建可以在不依赖
Python 解释器的情况下运行的模型,并且可以更积极地进行优化。使用程序注解可以将现有模型转换为 PyTorch 可以直接运行的
Python 子集 Torch Script。模型代码仍然是有效的 Python 代码,可以使用标准的 Python 工具链进行调试。 PyTorch 1.0 提供了 torch.jit.trace 和 torch.jit.script 两种方式使现有代码与 JIT 兼容。一经注解,Torch Script 代码便可以被积极地优化,并且可以被序列化以在新的 C++ API 中使用,并且 C++ API 不依赖于 Python。 # Write in Python, run anywhere! @torch.jit.script def RNN(x, h, W_h, U_h, b_h): y = [] for t in range(x.size(0)): h = torch.tanh(x[t] @ W_h + h @ U_h + b_h) y += [h] return torch.stack(y), h 全新并且更快的分布式库 torch.distributed 软件包和 torch.nn.parallel.DistributedDataParallel 模块采用了重新设计的全新分布式库,亮点包括:
C++ 前端 C++
前端是 PyTorch 后端的纯 C++ 接口,它遵循已建立的 Python 前端的 API 和体系结构,旨在实现高性能、低延迟和裸机 C++
应用的研究。它提供了 torch.nn、torch.optim、torch.data 和 Python
前端的其它组件的等价物。下边是两种语言前端的简单比较:
注意,目前 C++ API 还处于 unstable 阶段。 此外还有一系列更新信息,详情查看发布公告。 下载地址: |