2017-03-09 5 views
4

Y at-il un moyen, je peux ajouter une simple régularisation L1/L2 dans PyTorch? Nous pouvons probablement calculer la perte régularisée en ajoutant simplement le data_loss avec le reg_loss mais y a-t-il une manière explicite, n'importe quel support de la bibliothèque de PyTorch pour le faire plus facilement sans le faire manuellement?Ajout d'une régularisation L1/L2 dans PyTorch?

Répondre

3

Ceci est présenté dans la documentation de PyTorch. Jetez un oeil à http://pytorch.org/docs/optim.html#torch.optim.Adagrad. Vous pouvez ajouter une perte L2 en utilisant le paramètre de perte de poids à la fonction d'optimisation.

+1

Adagrad est une technique d'optimisation, je parle de régularisation. Pouvez-vous me donner un exemple concret avec la perte de L1 et L2? –

+2

Ya, la régularisation L2 est mystérieusement ajoutée dans les fonctions d'optimisation car les fonctions de perte sont utilisées lors de l'optimisation. Vous pouvez trouver la discussion ici https://discuss.pytorch.org/t/simple-l2-regularization/139/3 – Kashyap

1

ci-après devrait contribuer à la régularisation L2:

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