Bis*_*tha 15 numpy pytorch tensor
标题说明了一切.我想将a转换PyTorch autograd.Variable为其等效numpy数组.在他们的官方文档中,他们主张使用a.numpy()获取等效numpy数组(for PyTorch tensor).但这给了我以下错误:
回溯(最近一次调用最后一次):文件"stdin",第1行,在模块文件"/home/bishwajit/anaconda3/lib/python3.6/site-packages/torch/autograd/variable.py",第63行,getattr raise AttributeError(name)AttributeError:numpy
有什么办法可以绕过这个吗?
bli*_*345 25
两种可能的情况
使用GPU:如果你试图将cuda float-tensor直接转换为numpy,如下所示,它将引发错误.
x.data.numpy()
RuntimeError:不支持FloatTensor的numpy转换
所以,你不能将cuda float-tensor直接转换为numpy,而是必须首先将它转换为cpu float-tensor,并尝试转换为numpy,如下所示.
x.data.cpu().numpy的()
使用CPU:转换CPU张量很简单.
x.data.numpy()
我找到了方法。其实,我可以先提取Tensor从数据autograd.Variable使用a.data。然后剩下的部分真的很简单。我只是a.data.numpy()用来获取等效numpy数组。步骤如下:
a = a.data # a is now torch.Tensor
a = a.numpy() # a is now numpy array
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13915 次 |
| 最近记录: |