标签:func container app mini puts 模块 pass rom res
nn.Module是所有网络模型结构的基类,无论是pytorch自带的模型,还是要自定义模型,都需要继承这个类。这个模块包含了很多子模块,如下所示,_parameters存放的是模型的参数,_buffers也存放的是模型的参数,但是是那些不需要更新的参数。带hook的都是钩子函数,详见钩子函数部分。
此外,每一个模块还内置了一些常用的方法来帮助访问和操作网络。
Parameter是Tensor子类,所以继承了Tensor类的属性。例如data和grad属性,可以根据data来访问参数数值,用grad来访问参数梯度。
定义变量的时候,nn.Parameter会被自动加入到参数列表中去
接定义成Parameter类外,还可以使用ParameterList和ParameterDict分别定义参数的列表和字典。ParameterList接收一个Parameter实例的列表作为输入然后得到一个参数列表,使用的时候可以用索引来访问某个参数,另外也可以使用append和extend在列表后面新增参数。
可以像添加字典数据那样添加参数
下面是一个展开操作,比如将2维图像展开成一维
自定义一个Linear层
ModuleList 和 ModuleDict都是继承与nn.Module, 与Seuqential不同的是,ModuleList 和 ModuleDict没有自带forward方法,所以只能作为一个模块和其他自定义方法进行组合。下面是使用示例:
标签:func container app mini puts 模块 pass rom res
原文地址:https://www.cnblogs.com/qwera/p/14710380.html