Okay I gave that a go, it still seems to be having trouble though:

print(np.unique(train_accu))
[  0.  25.  50.  75. 100.]

I don’t know if it helps but the outputs when testing a cat and a dog image after training gives these results:
Cat test:
Variable containing:
 1.0000e+00  3.0693e-09
[torch.FloatTensor of size 1x2]

Dog test:
Variable containing:
 1.0000e+00  1.5074e-07
[torch.FloatTensor of size 1x2]