How to convert Pytorch autograd.Variable to Numpy?
The title says it all. I want to convert a PyTorch autograd.Variable to its equivalent numpy array. In their official documentation they advocated using a.numpy() to get the equivalent numpy array (for PyTorch tensor). But this gives me the following error:


  Traceback (most recent call last): File "stdin", line 1, in module
  File
  "/home/bishwajit/anaconda3/lib/python3.6/site-packages/torch/autograd/variable.py",
  line 63, in getattr    raise AttributeError(name) AttributeError:
  numpy


Is there any way I can circumvent this?

Two possible case


Using GPU: If you  try to convert a cuda float-tensor directly to numpy like shown below,it will throw an error.


  x.data.numpy()
  
  RuntimeError: numpy conversion for FloatTensor is not supported


So, you cant covert a cuda float-tensor directly to numpy, instead you have to convert it into a cpu float-tensor first, and try converting into numpy, like shown below.


  x.data.cpu().numpy()

Using CPU: Converting a CPU tensor is straight forward.


  x.data.numpy()


