Just as a note, to get your loss back to a python float, you can just do .data[0], no need to convert to cpu and numpy.
Also you have access to torch.cuda.FloatTensor() directly if you need.
And removing Variable altogether is a work in progress  (they will be merge into the Tensor class).
I personally don’t find it as verbose, but it may be because I never use numpy and so never have to convert stuff explicitly. From my experience, not using numpy reduces a lot this kind of very verbose code.