You could simulate a larger batch size by accumulating the gradients from a few forward passes and call backward() on these.
Also in the DCGAN 13 example the gradients from the “real” and “fake” loss are accumulated and the optimizer is called just after both backward passes were called.
It gives you more flexibility, if you would like to experiment with some crazy stuff!