Differentiation automatique Pytorch (`requires_grad=True`)

Piège

Pytorch cumule les gradients dans .grad d'une itération a l'autre. Si on oublie l'appel optimizer.zero_grad() après chaque optimizer.step(), les gradients se somment de boucle en boucle, ce qui mene a des pas effectifs incoherents et fait diverger l'apprentissage. Le PDF p7 (apprentissage_t) et p10 (apprentissage 2-couches) le rappelle systematiquement par le commentaire # remise a zero des gradients (sinon ils sont cumules). Erreur frequente d'un MPSI débutant en Pytorch.