gradient accumulation means we can do batch descent without having to have the batch fit completely in memory.
if one layer (or weight) is used multiple times, in the backward phase it has to accumulate.
If our setting is to accumulate gradients, we have to zero them at some point. And we cant just zero-them on loss.backward, because (1).