How to convert Pytorch autograd.Variable to Numpy?

两盒软妹~` 提交于 2019-11-30 05:08:06

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

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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!