文章目录
Dive into deep learning(04)[动手学深度学习]———————第四章,深度学习计算
前言:论文初稿算是结束了。感觉自己效率还有待提高。
本章摘要: 这章主要是介绍怎么构造层,参数访问,怎么储存输入输出,怎么使用gpu等等基础内容。
1、层和块(model-construction)
一个块可以由许多层组成;一个块可以由许多块组成。
块可以包含代码。
块负责大量的内部处理,包括参数初始化和反向传播。
层和块的顺序连接由Sequential块处理。
作业:
作业都挺简单的,值得注意的是,dict相较于list的存储优势在于保存了序列。
函数记录:
chimera = nn.Sequential(NestMLP(), nn.Linear(16, 20), FixedHiddenMLP())
##这个函数用来对层和块顺序连接
2、参数管理(parameters)
主要是怎么读取参数,类似于weight,bias这些。
还有参数初始化
作业:
函数记录:
net[2].state_dict()
###读取网络中第三个模块的相关数据
net[2].bias
##读取网络中第三个模块的偏置实例,注意是实例,包含了数据,梯度等信息
net[2].bias.data
##读取网络中第三个模块的偏置数据
net[2].weight.grad
##读取网络中第三个模块的权重梯度
print(*[(name, param.shape) for name, param in net.named_parameters()])
##获取参数名字和形状
net.state_dict()['2.bias'].data
##读取网络中第三个模块的偏置数据(另一种方式)
net.add_module(f'block {i}',