赞
踩
import torch.optim as optim
from torch.optim.lr_scheduler import CosineAnnealingLR
opt = optim.Adam(parameters, lr=args.lr, weight_decay=1e-4)
# CosineAnnealingLR 余弦退火调整学习率
lr_scheduler = torch.optim.lr_scheduler.CosineAnnealingLR(opt, T_max=args.epochs,
eta_min=0, last_epoch=-1)
weight_decay
= 1e-4weight_decay
= 1e-6weight_decay(权重衰退):
weight _decay
本质上是一个 L2正则化系数
L
=
E
i
n
+
λ
∑
j
w
j
2
L=E_{i n}+\lambda \sum_j w_j^2
L=Ein+λj∑wj2
可以理解为:
w
趋近 0 时, w
平方和 会小, 模型损失也会变小weight_decay
的大小就是公式中的λ
,可以理解为λ
越大,优化器就越限制权重变得趋近 0权重衰减( Weight Decay)
gt
为第t
步更新时的梯度α
为学习率β
为权重减系数
使用 weight decay 可以:
weight_decay即权重衰退。
1e-8
,所以调参的时候调整是否使用权重衰退即可在深度学习模型中,一般将衰减系数设置为 0.0001
到 0.001
之 间的值
论文里是验证了1e-4比较好
1e-4
周围开始尝试在看其他量化训练的一些代码、论文等,不经意间注意到有人建议要关注weight decay值的设置
1e-4
, 不要设置为1e-5
这么小因为weight-decay
可以使参数尽可能地小,尽可能地紧凑
scale=(b-a)/255
会偏大,导致的结果就是大量数值较为接近的浮点数被量化到同一个数,严重损失了精度Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。