Skip to content

Commit 354a525

Browse files
committed
更新:官方1.0更新解读
1 parent 6443a57 commit 354a525

File tree

2 files changed

+51
-1
lines changed

2 files changed

+51
-1
lines changed

README.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,14 @@
1111
## 版本说明
1212
由于PyTorch版本更迭,教程的版本会与PyTorch版本,保持一致。
1313

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

1623
## 目录
1724

changelog-v1.0.md

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

0 commit comments

Comments
 (0)