Thanks for the prompt reply! I think you’re right; I underestimated how large the intermediate results are. I assumed they’d be roughly proportional to the size of the input, but now that I think about it that’s silly. Since the network works fine with a batch size of 16 images, I don’t think there’s anything else going on.
If you don’t mind, how can I access those intermediate forward activations? I thought code like this would work to get the output of the first layer:
result = model(x)
conv1 = next(model.children())
for b in conv1.buffers():
    print(b)

However, there don’t seem to be any buffers associated with that layer. Is there a simple way to see those outputs?