欢迎订阅本专栏:《PyTorch深度学习实践》
订阅地址:https://blog.youkuaiyun.com/sinat_33761963/category_9720080.html
- 第二章:认识Tensor的类型、创建、存储、api等,打好Tensor的基础,是进行PyTorch深度学习实践的重中之重的基础。
- 第三章:学习PyTorch如何读入各种外部数据
- 第四章:利用PyTorch从头到尾创建、训练、评估一个模型,理解与熟悉PyTorch实现模型的每个步骤,用到的模块与方法。
- 第五章:学习如何利用PyTorch提供的3种方法去创建各种模型结构。
- 第六章:利用PyTorch实现简单与经典的模型全过程:简单二分类、手写字体识别、词向量的实现、自编码器实现。
- 第七章利用PyTorch实现复杂模型:翻译机(nlp领域)、生成对抗网络(GAN)、强化学习(RL)、风格迁移(cv领域)。
- 第八章:PyTorch的其他高级用法:模型在不同框架之间的迁移、可视化、多个GPU并行计算。
Tensor是PyTorch的数据结构,要对PyTorch有深入学习,那么务必要对tensor有所熟悉。
2.1.1 tensor是pytorch的基础数据结构
假设我们要建立图像分类的模型,整个过程是:
(1)将.jpg、.png或其他格式的图片转换成模型能够识别的数据格式input;
(2)input进入模型后,在模型的各模块中进行转化,在中间过程形成很多数据表征(intermediate representation);
(3)最后模型输出output
在这个过程中,input, intermediate representation, output都是通过tensor这个数据结构来表示的。如下图:
2.2.2 tensor是多维数组
Tensor是向量和矩阵的泛化, 如下,标量是0维的,向量是1维的,矩阵是2维的,它们都是张量的特例,张量可以是3维、4维…任何维度。
2.2.3 tensor能在GPU上加速
python的NumPyArray其实也是多维数组,array之于Numpy等同于tensor之于PyTorch,与array相比tensor还具有以下特点:
(1)tensor能在GPU上快速运行;
(2)tensor能在多块设备或机器上分布式运行;
(3)tensor能跟整个计算图的过程,从而支持自动反向传播。
这些都是执行深度学习库的重要特性。