numpy - 如何将 Pytorch autograd.Variable 转换为 Numpy?

标签 numpy pytorch tensor

标题说明了一切。我想将 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/

相关文章:

python - 如何在单次通过时测试 numpy 数组或矩阵列中是否存在两个值之一?

python-3.x - numpy 中的 (N,) 和 (N,1) 有什么区别?

python - 如何用 Skorch 预测单张图像?

machine-learning - Pytorch N - Beats 模型抛出错误 : 'str' object has no attribute '__name__'

python-3.x - Tensorflow 无效形状 (InvalidArgumentError)

python - Numpy 就地设置绝对值

python - 使用 numpy polyfit 在 python 中使用具有多个变量的 polyfit 将数据拟合到曲线

python-3.x - 查找 torchvision 模型中的所有 ReLU 层

arrays - Matlab:如何执行 `repelem` 其中每个元素都是矩阵?

python - TensorFlow:是否可以使用 for 循环将函数映射到数据集?