将 PytorchTensor 转换并保存到 Python 中 GPU 上的 .mat 图像

问题描述

我是 Pytorch 的初学者,我被一个问题困扰了好几天。我想将 Pytorch 张量形式的图像保存为 .mat 文件。我看了看,但似乎没有将 Pytoch 张量转换为 .mat 文件的直接方法。我发现的一种可能的解决方案是将其转换为 numpy 数组,但由于我使用的是 Nvidia GPU,当我尝试将 Pytorch 张量转换为 numpy 数组时,它给了我这个错误

fake_images[0] = fake_images[0].numpy()

TypeError: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first

如何在使用 GPU 时将 Pytorch 张量保存到 .mat 文件

解决方法

照你说的去做:

from scipy.io import savemat

with torch.no_grad():
  mdic = {'fake_images': [f_.cpu().numpy() for f_ in fake_images]}
  savemat('fake_images.mat',mdic)

您可以看到有关将 pytorch 张量转换为 numpy 数组 here 的更多信息。