1、model.named_parameters()
model.named_parameters()
返回一个生成器,生成每个参数的名称和相应的参数值。这对于查看和修改特定参数的可训练状态非常有用。
model= DarkNet([1, 2, 8, 8, 4])
for name, param in model.named_parameters():
print(name, param.requires_grad)
param.requires_grad = False
输出:
conv1.weight True
bn1.weight True
bn1.bias True
layer1.ds_conv.weight True
layer1.ds_bn.weight True
layer1.ds_bn.bias True
layer1.residual_0.conv1.weight True
layer1.residual_0.bn1.weight True
layer1.residual_0.bn1.bias True
layer1.residual_0.conv2.weight True
layer1.residual_0.bn2.weight True
layer1.residual_0.bn2.bias True
layer2.ds_conv.weight True
layer2.ds_bn.weight True
layer2.ds_bn.bias True
layer2.residual_0.conv1.weight True
layer2.residual_0.bn1.weight True
layer2.residual_0.bn1.bias True
....
通过这种方式,你可以查看和更改每个参数的可训练属性。
model.named_parameter