torch.optim 中实现了很多优化器,只需要指定优化器的权重衰减即可:
1 | optimizer = optim.SGD(model.parameters(), lr = 0.01, momentum=0.9,weight_decay=1e-5) |
优化器同时还支持per-parameter options操作,就是对每一个参数进行特定的制定,以满足更为细致的要求。此时,传入优化器的是可迭代的字典,字典中必须有params的key,用于指定特定优化变量,而其他key需要匹配优化器本身的设置。
1 | optim.SGD([ |
可以灵活给每个子模块设置不同的学习率,权值衰减和momentum。也可以给权值设定权值衰减,而不作用于偏置:
1 | weight_p, bias_p = [],[] |