输出网络结构:
print("auxi=",nn.Sequential(*list(self.auxi_network.children())))
对每一层的访问方式。模型打印出来前面带标号的,如(0),可以直接用下标[0]访问。如果前面是带名字的,如(con1),则需要用属性名.conv1访问。
如:
print("auxi=",nn.Sequential(*list(self.auxi_network.children()))[0][4][1].conv1.weight.grad)
打印模型权重和梯度:
net = Net()
print(net.conv21.bias)
print(net.conv21.bias.grad)
print(net.conv21.weight)
print(net.conv21.weight.grad)
打印Sequential
序列中的值:
for i,m in enumerate(net.conv1.children()):
if isinstance(m, nn.Conv2d):
print("net.conv1."+str(i)+"(Conv2d).weight = ",m.weight)
print("net.conv1."+str(i)+"(Conv2d).weight.grad = ",m.weight.grad)
elif isinstance(m, nn.BatchNorm2d):
print("net.conv1."+str(i)+"(BatchNorm2d).weight = ",m.weight)
print("net.conv1."+str(i)+"(BatchNorm2d).weight.grad = ",m.weight.grad)