标题说明了一切。我想将 PyTorch autograd.Variable 转换为其等效的 numpy 数组。在他们的official documentation中他们主张使用 a.numpy() 来获取等效的 numpy 数组(对于 PyTorch 张量)。但这给了我以下错误:
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
有什么办法可以避免这个问题吗?
最佳答案
两种可能的情况
使用 GPU:如果您尝试将 cuda float-tensor 直接转换为 numpy(如下所示),则会抛出错误。
x.data.numpy()
RuntimeError: numpy conversion for FloatTensor is not supported
因此,您不能将 cuda float-tensor 直接转换为 numpy,您必须先将其转换为 cpu float-tensor,然后尝试转换为 numpy,如下所示。
x.data.cpu().numpy()
使用 CPU:转换 CPU 张量非常简单。
x.data.numpy()
关于numpy - 如何将 Pytorch autograd.Variable 转换为 Numpy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44340848/