间接本人写
model是要正则的模型,reg_type抉择'l1'
还是l2
,coef是系数。
def regularization(model:nn.Module, reg_type,coef):
int_type=int(reg_type[1])
reg_loss = 0
for module in model.modules():
for param in module.parameters():
reg_loss+=torch.norm(param,int_type)
return reg_loss*coef
代码是一个小例子,对哪个module进行正则,这都能够本人筛选,不用对每一个module都正则。
优化器中增加
一个是Adam或者AdamW优化器外面有weight_decay参数,那个是l2的正则系数
发表回复