Добавление регуляризации 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
ссылки: