gpt4 book ai didi

python - 如何以随机度数旋转 Torch 张量

转载 作者:行者123 更新时间:2023-12-05 06:12:28 32 4
gpt4 key购买 nike

作为训练 CNN 的一部分,我正在使用数组 inputs包含 <class 'torch.Tensor'>对象。我想轮换一个人<class 'torch.Tensor'>一些随机度数的对象 x ,如下所示:

def rotate(inputs, x):
# Rotate inputs[0] by x degrees, x can take on any value from 0 - 180 degrees

我该怎么做?对于现有的实现,我只能找到 torch有一个 rot90功能,但这将我限制为 90 的倍数学位对我的情况没有帮助。

谢谢,文尼

最佳答案

要转换 torch.tensor,您可以使用 scipy.ndimage.rotate 函数(阅读 here),旋转 torch.tensor 但它还将其转换为 numpy.ndarray,因此您必须将其转换回 torch.tensor。请参阅这个玩具示例。

功能:

def rotate(inputs, x):
return torch.from_numpy(ndimage.rotate(inputs, x, reshape=False))

详细解释:

import torch
from scipy import ndimage
alpha = torch.rand(3,3)
print(alpha.dtype)#torch.float32

angle_in_degrees = 45
output = ndimage.rotate(alpha, angle_in_degrees, reshape=False)

print(output.dtype) #numpy_array

output = torch.from_numpy(output) #convert it back to torch tensor

print(output.dtype) #torch.float32

此外,如果可能的话,您可以在将 PIL 图像转换为张量之前直接对其进行转换。要转换 PIL 图像,您可以使用 PyTorch 内置 torchvision.transforms.functional.rotate(阅读 here)。

关于python - 如何以随机度数旋转 Torch 张量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63619435/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com