Ok that printed out something! It ended up printing out:
tensor([ 1.2046e-02, -6.8818e+09], device='cuda:0', requires_grad=True)
Training loss for batch 9: 0.0186079985071379

Which looks about correct enough; however, my model doesn’t seem to be training at all. I’m comparing the values for each (unshuffled) batch from the last epoch, and I’m getting something like:
EPOCH 1
Training loss for batch 0: 0.27021969694780146, 0.0% change
Training loss for batch 1: 0.020840750138244823, 0.0% change
Training loss for batch 2: 0.8588083189094075, 0.0% change
Training loss for batch 3: 0.4859533358527053, 0.0% change

I’ve tried different optimizers as well as a learning rate of 10^14 in case my gradients were too small but it doesn’t seem to change anything. Any ideas?