我在pytorch中有一个模型,并希望添加L1正则化insde the loss_function。但我不想将权重传递给loss_function() - 有更好的方法吗?有关详细信息,请参阅下面的loss_function()。
{{1}}
答案 0 :(得分:0)
我认为这样的事情可行:
我们定义了以torch.norm
作为输入的损失函数。请注意,torch Tensor
的输入应为.data
,因此我们需要在图层的权重中执行Parameter
,因为它是layer
。然后,我们计算p=1
设置un def l1_loss(layer):
return (torch.norm(layer.weight.data, p=1))
lin1 = nn.Linear(8, 64)
l = l1_loss(lin1)
(L1)的范数。
calendar2.add(Calendar.DATE, 1);
calendar3.add(Calendar.DATE, 1);