1 net.named_parameters()
net.named_parameters() 包含有神经网络中的参数以及参数的名字的信息, 因此我们经常能在代码中看到这样的信息:
for name, parameter in net.named_parameters():
...
想要查看 net.named_parameters() 中的内容, 打印必须使用 list() , 因为net.named_parameters()里面是一个 object 类
print(net.named_parameters())
>> <generator object Module.named_parameters at 0x88b45e580>
print(list(net.named_parameters()))
>>[('conv.0.weight', Parameter containing:
tensor([[ 0.0159, -0.0371, 0.0378, ..., 0.0093, 0.0353, 0.0607],
[-0.0203, -0.0387, -0.0447, ..., -0.0284, 0.0118, -0.0541],
[ 0.0590, -0.0559, -0.0156, ..., 0.0023, -0.0222, 0.0342],
...,
[-0.0406, 0.0036, -0.0081, ..., -0.0049, 0.0018, -0.0188],
[-0.0358, -0.0212, 0.0519, ..., -0.0128, 0.0319, 0.0548],
[-0.0157, 0.0120, -0.0231, ..., -0.0580, 0.0269, 0.0582]],
requires_grad=True), ('conv.0.bias', Parameter containing:
tensor([-0.1569, -0.0493, 0.0409, 0.1007, 0.1389, -0.1706],
requires_grad=True)),
2 net.parameters()
与 net.named_parameters() 相对应, net.parameters() 函数只包含神经网络的参数值而不包含参数值的名字, 即少了 'conv.0.weight' 和 'conv.0.bias'