170 votes

pytorch - connexion entre loss.backward() et optimizer.step()

Où se trouve un lien explicite entre le optimizer et le loss ?

Comment l'optimiseur sait-il où obtenir les gradients de la perte sans un appel comme celui-ci ? optimizer.step(loss) ?

-Plus de contexte.

Lorsque je minimise la perte, je n'ai pas eu à transmettre les gradients à l'optimiseur.

loss.backward() # Back Propagation
optimizer.step() # Gardient Descent

-2voto

pourya Points 9

Réponse courte :

loss.backward() # faire le gradient de tous les paramètres pour lesquels nous avons défini required_grad= True . les paramètres peuvent être n'importe quelle variable définie dans le code, par exemple h2h o i2h .

optimizer.step() # selon la fonction de l'optimiseur (définie précédemment dans notre code), nous mettons à jour ces paramètres pour finalement obtenir la perte (erreur) minimale.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X