使用model.named_parameters()可以轻松搞定,
1
2
3
4
5
6
7
8
9
10
11
12
13
|
model.cuda()
# ######################################## Froze some layers to fine-turn the model ########################
for name, param in model.named_parameters(): # 带有参数名的模型的各个层包含的参数遍历
if 'out' or 'merge' or 'before_regress' in name: # 判断参数名字符串中是否包含某些关键字
continue
param.requires_grad = False
# #############################################################################################################
optimizer = optim.SGD( filter ( lambda p: p.requires_grad, model.parameters()),
lr = opt.learning_rate * args.world_size, momentum = 0.9 , weight_decay = 5e - 4 )
|
以上这篇Pytorch根据layers的name冻结训练方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/xiaojiajia007/article/details/97175643