How to convert Pytorch autograd.Variable to Numpy?

后端 未结 2 1860
甜味超标
甜味超标 2020-12-14 10:09

The title says it all. I want to convert a PyTorch autograd.Variable to its equivalent numpy array. In their official documentation they advocated

相关标签:
2条回答
  • 2020-12-14 10:30

    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()

    0 讨论(0)
  • 2020-12-14 10:40

    I have found the way. Actually, I can first extract the Tensor data from the autograd.Variable by using a.data. Then the rest part is really simple. I just use a.data.numpy() to get the equivalent numpy array. Here's the steps:

    a = a.data  # a is now torch.Tensor
    a = a.numpy()  # a is now numpy array
    
    0 讨论(0)
提交回复
热议问题