web-dev-qa-db-fra.com

PyTorch: Comment changer le taux d'apprentissage d'un optimiseur à un moment donné (pas de programme LR)

Est-il possible dans PyTorch de modifier dynamiquement le taux d'apprentissage de l'optimiseur au milieu de la formation (je ne veux pas définir de programme de taux d'apprentissage au préalable)?

Disons que j'ai un optimiseur:

optim = torch.optim.SGD(model.parameters(), lr=0.01)

Maintenant, en raison de certains tests que j'effectue pendant la formation, je me rends compte que mon taux d'apprentissage est trop élevé, donc je veux le changer pour dire 0.001. Il ne semble pas y avoir de méthode optim.set_lr(0.001) mais existe-t-il un moyen de le faire?

18
patapouf_ai

Ainsi, le taux d'apprentissage est stocké dans optim.param_groups[i]['lr']. optim.param_groups est une liste des différents groupes de poids qui peuvent avoir des taux d'apprentissage différents. Ainsi, simplement faire:

for g in optim.param_groups:
    g['lr'] = 0.001

fera l'affaire.

39
patapouf_ai