更新:官方1.0更新解读

This commit is contained in:
zergtant 2018-12-08 21:14:34 +08:00
parent 6443a57c3f
commit 354a5251ff
2 changed files with 51 additions and 1 deletions

View File

@ -11,7 +11,14 @@
## 版本说明
由于PyTorch版本更迭教程的版本会与PyTorch版本保持一致。
目前PyTorch的版本为0.41,教程版本也相应为0.41等待1.0正式发布后本教程也会随之升级到1.0版
12月8日PyTorch已经发布1.0的稳定版。
API的改动不是很大本教程的兼容性正在测试会保证能够在1.0中正常运行。
不过目前看影响不大,因为毕竟内容还不多。 v0.4.1已经新建了分支作为存档,并且该不会再进行更新了。
[官方1.0说明](https://github.com/pytorch/pytorch/releases/tag/v1.0.0)
[主要改动中文说明](changelog-v1.0.md)
## 目录

43
changelog-v1.0.md Normal file
View File

@ -0,0 +1,43 @@
# PyTorch 1.0主要改动说明
本改动说明只针对主要部分进行阐述,详情还请以官方英文为准
## JIT
JIT是一组编译工具用来弥补研究和产品部署之间的差距。
新增的torch.jit包包含了一组编译器工具用于搭建PyTorch的研究与工业生产之间的桥梁。
它包括一种名为Torch Script的语言(单从语法上来看这是Python语言的一个子集所以我们不用再学一门新语言了)以及两种使现有代码与JIT兼容的方法。
Torch Script的代码是可以进行积极的优化类似TensorFlow代码可以序列化以供以后在C++ API中使用它完全不依赖于Python。
`@torch.jit.script`注解官方给出的注释是Write in Python, run anywhere!
## 改进的分布式库torch.distributed
- 新的torch.distributed是性能驱动的并且对所有后端GlooNCCL和MPI完全异步操作
- 显著的分布式数据并行性能改进,尤其适用于网络较慢的主机,如基于以太网的主机
- 为torch.distributed包中的所有分布式集合操作添加异步支持
- 在Gloo后端添加以下CPU操作sendrecvreduceall_gathergatherscatter
- 在NCCL后端添加障碍操作
- 为NCCL后端添加new_group支持
其实主要含义就是分布式的性能得到了改进,具体改进多少后面还要进行测试了
## C++的前端C++ 版 Torch)
C++前端是到PyTorch后端的纯C++接口遵循已建立的Python前端的API和体系结构。它旨在支持在高性能、低延迟和硬核C++应用程序中的研究。它相当于torch.nn, torch.data等PyTorch的Python前端组件。
这个对我来说意义不大,不详细说了
## Torch Hub
这个一听就知道google刚推出TensorFlow Hub不久FB就跟进了受益最大的就是“没有技术含量的公司可以再吹一波牛逼了”
## 官方提供免费课程
与Udacity合作免费提供成人AI课程
[PyTorch深度学习简介](https://cn.udacity.com/course/deep-learning-pytorch--ud188)
看样子如果出中文版的话可能要有一阵子了,不过 I love studystudy makes me happy.
## 比较重要的改动
- torch.distributed的 TCP 后端被移除了官方建议CPU用Gloo或者MPI, GPU用英伟达的NCCL
- 使用tensor的0下标返回数据的方法loss[0]),彻底移除, 你需要使用loss.item() 这个可能比较重要因为标量0阶张量的操作一定要用到这个
- 移除了直接在CUDA上调用numpy函数的隐式类型转换现在你需要手动把数据从CUDA先移到CPU上 这个对我们来说不重要我们一直都是先移动到cpu再转化成numpy函数的