冻结部分层
for name, parameter in network.named_parameters():
if 'key' in name:
parameter.requires_grad = False
optimizer = torch.optim.Adam(filter(lambda p: p.requires_grad, network.parameters()), lr=0.005)
不同层设置不同学习率
conv5_params = list(map(id, net.conv5.parameters()))
conv4_params = list(map(id, net.conv4.parameters()))
base_params = filter(lambda p: id(p) not in conv5_params + conv4_params, net.parameters())
params = [{'params': base_params},
{'params': net.conv5.parameters(), 'lr': lr * 100},
{'params': net.conv4.parameters(), 'lr': lr * 100}]
optimizer = torch.optim.SGD(params, lr=lr, momentum=0.9)