首页 > 其他 > 详细

【机器学习实战】PyTorch L2 正则化

时间:2020-06-25 21:46:34      阅读:439      评论:0      收藏:0      [点我收藏+]

论文 Bag of Tricks for Image Classification with Convolutional Neural Networks. 中提到,加 L2 正则就相当于将该权重趋向 0,而对于 CNN 而言,一般只对卷积层和全联接层的 weights 进行 L2(weight decay),而不对 biases 进行。Batch Normalization 层也不进行 L2。

PyTorch,只对卷积层和全联接层的 weights 进行 L2(weight decay):

weight_decay_list = (param for name, param in model.named_parameters() if name[-4:] != ‘bias‘ and "bn" not in name)
no_decay_list = (param for name, param in model.named_parameters() if name[-4:] == ‘bias‘ or "bn" in name)
parameters = [{‘params‘: weight_decay_list},
              {‘params‘: no_decay_list, ‘weight_decay‘: 0.}]

optimizer = torch.optim.SGD(parameters, lr=0.1, momentum=0.9, weight_decay=5e-4, nesterov=True)

References

[1] He, T., Zhang, Z., Zhang, H., Zhang, Z., Xie, J., Li, M. (2019). Bag of Tricks for Image Classification with Convolutional Neural Networks. (CVPR) https://dx.doi.org/10.1109/cvpr.2019.00065

【机器学习实战】PyTorch L2 正则化

原文:https://www.cnblogs.com/wuliytTaotao/p/13192798.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!