Pytorch——net.parameters,参数获取

假设有如下模型

net = nn.Sequential(nn.Linear(2, 1))

现在要获取其参数值和参数名称

方法一:

for  parm in net[0].parameters():
    print(parm)

结果:

Parameter containing:
tensor([[-0.0701,  0.6440]], requires_grad=True)
Parameter containing:
tensor([0.3689], requires_grad=True)

方法二:

for index,param in enumerate(net.state_dict()):
    print("index = ",index)
    print("param = ",param)
    print("param_value = ",net.state_dict()[param])
    print('----------------')

结果:

index =  0
param =  mylinear.weight
param_value =  tensor([[-0.3498, -0.6411]])
----------------
index =  1
param =  mylinear.bias
param_value =  tensor([-0.3613])
----------------

方法三:

net = nn.Sequential()
net.add_module('mylinear',nn.Linear(2, 1))
print(net[0].weight)
print(net[0].bias)

结果:


Parameter containing: tensor([[-0.4204, -0.5140]], requires_grad=True) Parameter containing: tensor([-0.0711], requires_grad=True)

参考:https://blog.csdn.net/hxxjxw/article/details/107717031