PyTorch 深度学习和图神经网络

(卷1)/基础知识 (卷2)/开发应用
李金洪 著

第一篇 入门——PyTorch基础


第4章 快速上手PyTorch


4.1 神经网络中几个基本数据类型(Page30

4.2 张量的基础

4.2.1 定义张量的方法(Page30Page31
4.2.2 张量的类型(Page32
4.2.3 张量的type方法(Page33

4.3张量与Numpy


4.3.1 张量与Numpy类型的相互转换(Page34
4.3.2 张量与Numpy各自的形状获取(Page34
4.3.3 张量与Numpy各自切片操作(Page34
4.3.4 张量与Numpy类型数据相互转换间的陷阱(Page35

4.4 在CPU和GPU控制的内存中定义张量


4.4.1 将CPU内存中的张量转化到GPU内存中(Page36
4.4.2 直接在GPU内存中定义张量(Page36
4.4.3 使用to()方法来指定设备(Page36
4.4.4 使用环境变量CUDA_VISIBLE_DEVICES来指定来指定设备(Page36

4.5生成随机值张量

4.5.1 设置随机值种子(Page37
4.5.2 按照指定形状生成随机值(Page37
4.5.3 生成线性空间的随机值(Page37
4.5.4 生成对数空间的随机值(Page38
4.5.5 生成未初始化的矩阵(Page38
4.5.6 更多的随机值生成函数(Page38

 

4.6 张量间的数学运算

4.6.1 PyTorch的运算函数(Page39
4.6.2 PyTorch的自变化运算函数(Page39

 

 

 

4.7 张量间的数据操作

4.7.1 用torch.reshape()函数实现数据维度变换(Page39
4.7.2 实现张量数据的矩阵转置(Page40
4.7.3 view()方法与contiguous()方法(Page40
4.7.4 用torch.cat()函数实现数据连接(Page41
4.7.5 用torch.chunk()函数实现数据均匀分割(Page41
4.7.6 用torch.split()函数实现数据不均匀分割(Page42
4.7.7 用torch.gather()对张量进行检索(Page42
4.7.8 按照指定阈值对张量进行过滤(Page42
4.7.9 找出张量中的非零值索引(Page43
4.7.10 根据条件进行多张量取值(Page43
4.7.11 根据阈值进行数据截断(Page43
4.7.12 获取数值中最大值、最小值的索引(Page43


4.8 Variable类型与自动微分模块


4.8.1 自动微分模块简介(Page44
4.8.2 Variable对象与张量对象之间的转化(Page44
4.8.3 用no_grad()与enable_grad()控制梯度算法(Page45
4.8.4 函数torch.no_grad()介绍(Page45
4.8.5 函数enable_grad()与no_grad()的嵌套(Page46
4.8.6 用set_grad_enabled()函数统一管理梯度计算(Page47
4.8.7 Variable对象的grad_fn属性(Page47
4.8.8 Variable对象的is_leaf属性(Page48
4.8.9 用backward()方法自动求导(Page48
4.8.10 自动求导的作用(Page49
4.8.11 用detach()方法讲Variable对象分离成叶子节点(Page49
4.8.12 volatile属性扩展(Page50

4.9 定义模型结构的步骤与方法

4.9.1 代码实现:Module类的使用方法(Page50),(Page51)
4.9.2 模型中的参数Parameters类(Page52
4.9.3 为模型添加参数(Page53
4.9.4 从模型中获取参数(Page53 Page54Page55
4.9.5 保存载入模型(Page56
4.9.6 模型结构中的钩子函数(Page57


4.10 模型的网络层
Page58



返回首页