Hmm heres a very interesting update.  When I use MSELoss it looks like it does give the correct L1 Loss?

(Pdb) output
Variable containing:
0.4714  0.4087
[torch.cuda.FloatTensor of size 1x2 (GPU 0)]
(Pdb) currentD
Variable containing:
(0 ,0 ,.,.) =
0.4714
(0 ,1 ,.,.) =
-0.5913
[torch.cuda.FloatTensor of size 1x2x1x1 (GPU 0)]