Добавление регуляризации L1/L2 в PyTorch?

есть ли способ, я могу добавить простую регуляризацию L1/L2 в PyTorch? Вероятно, мы можем вычислить регуляризованную потерю, просто добавив data_loss с reg_loss но есть ли явный способ, любая поддержка из библиотеки PyTorch, чтобы сделать это проще, не делая этого вручную?

3 ответов


Это представлено в документации для PyTorch. Взгляните на http://pytorch.org/docs/optim.html#torch.optim.Adagrad. Вы можете добавить потерю L2, используя параметр затухания веса в функцию оптимизации.


следующее должно помочь для регуляризации L2:

optimizer = torch.optim.Adam(model.parameters(), lr=1e-4, weight_decay=1e-5)

для регуляризации L2,

lambda = torch.tensor(1.)
l2_reg = torch.tensor(0.)
for param in model.parameters():
    l2_reg += torch.norm(param)
loss += lambda * l2_reg

ссылки: