假设有如下模型
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