如何将PyTorch张量转换为Numpy ndarray

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将PyTorch张量转换为Numpy ndarray相关的知识,希望对你有一定的参考价值。

我具有旋转MNIST图像的功能。该函数返回一个pytorch张量。我对Tensorflow更加熟悉,我想将pytorch张量转换为我可以使用的numpy ndarray。有功能可以让我做到这一点吗?我试图通过在tensor(img.rotate(rotation)).view(784)之后添加.numpy()来稍微修改该函数,然后将其保存在一个空的ndarray中,但这没有用。参数d是保存在.pt(我认为是张量器)中的MNIST数据。谢谢! (很想知道是否存在可以旋转数据的tensorflow函数。)

t = 1
min_rot = 1.0 * t / 20 * (180 - 0) + \
        0
max_rot = 1.0 * (t + 1) / 20 * \
    (180 - 0) + 0
rot = random.random() * (max_rot - min_rot) + min_rot
rotate_dataset(x_tr, rot)
def rotate_dataset(d, rotation):
    result = torch.FloatTensor(d.size(0), 784)
    tensor = transforms.ToTensor()

    for i in range(d.size(0)):
        img = Image.fromarray(d[i].numpy(), mode='L')
        result[i] = tensor(img.rotate(rotation)).view(784)
    return result
答案

首先如何不转换为tensor

result[i] = np.array(img.rotate(rotation)).flatten()

以上是关于如何将PyTorch张量转换为Numpy ndarray的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串列表转换为pytorch中的张量?

Pytorch 张量到 numpy 数组

什么是Pytorch?掌握Pytorch的基本元素操作运算操作

PyTorch张量类型转换

Pytorch张量,如何切换通道位置 - 运行时错误

一文读懂PyTorch张量基础(附代码)