nn.add_module(name,Module)
将一个 child module 添加到当前 modle。 被添加的module可以通过 name属性来获取。 例:
import torch.nn as nn
class MyModule(nn.module):
def __init__(self):
super(MyModule,self).__init__()
self.add_module('conv', nn.Conv2d(10, 20, 4))
#self.conv = nn.Conv2d(10, 20, 4) 和上面这个增加module的方式等价
model = MyModule()
print(model.conv)
输出:
Conv2d(10, 20, kernel_size=(4, 4), stride=(1, 1))
children()
Returns an iterator over immediate children modules. 返回当前模型 子模块的迭代器。
import torch.nn as nn
class MyModule(nn.module):
def __init__(self):
super(MyModule,self).__init__()
self.add_module('conv', nn.Conv2d(10, 20, 4))
self.conv1 = nn.Conv2d(20, 40, 4)
model = MyModule()
for sub_module in model.children():
print(sub_module)
输出:
Conv2d(10, 20, kernel_size=(4, 4), stride=(1, 1))
Conv2d(20, 10, kernel_size=(4, 4), stride=(1, 1))