1、、 、 类都继承自 Module类。
(资料图)
2、、和 语法
3、Sequential、ModuleDict、 ModuleList的区别
1)ModuleList仅仅是一个储存各种模块的列表,这些模块之间没有联系也没有顺序(所以不用保证相邻层的输入输出维度匹配),而且没有实现 forward功能需要自己实现
2)和 ModuleList一样, ModuleDict实例仅仅是存放了一些模块的字典,并没有定义 forward函数需要自己定义
3)而 Sequential内的模块需要按照顺序排列,要保证相邻层的输入输出大小相匹配,内部 forward功能已经实现,所以,直接如下写模型,是可以直接调用的,不再需要写forward,sequential 内部已经有 forward
为 写 forward 函数
为 写 forward 函数
将 转换成
将 转换成
4、ModuleDict、 ModuleList的区别
1)ModuleDict可以给每个层定义名字,ModuleList不会
2)ModuleList可以通过索引读取,并且使用 append 添加元素
3)ModuleDict可以通过 key 读取,并且可以像 字典一样添加元素
5、、 与 Python list、Dict的区别
加入到 ModuleList、ModuleDict里面的所有模块的参数会被自动添加到整个网络中。