Non, à chaque backward, on accumule les gradients (on fait la somme).
Pour pytorch, on supprime en appelant optimizer.zero_grad(). On fait ça entre chaque batch.
Ce système permet de faire du "gradient accumulation". Si on ne fait pas le zero_grad() entre deux mini-batchs alors on somme leurs gradients, comme si ils formaient un gros batch. C'est intéressant lorsqu'un batch ne tient pas entièrement en mémoire, ça permet de le calculer en deux fois.