对numpy数组和torch.Tensor维度顺序进行调整

numpy数组调整顺序用的是.transpose((x,x,x))

Torch张量调整顺序用的是.permute(x, x, x)

读取图片

方法1

from PIL import Image
image = Image.open(img_path)

方法2

from skimage import io
image = io.imread(img_path)

这2种方法读取的图像都是numpy数组类型,shape是(228, 300, 3)

对numpy数组类型的图像进行处理:

对图像的维度进行顺序调整:

source_image = source_image.transpose((2,0,1))

图像的shape变为:(3, 228, 300)

将图片从numpy数组转为Torch张量:

source_image = torch.Tensor(source_image)

图像的shape变为:torch.Size([3, 228, 300])

对图像(Torch张量)的维度进行顺序调整:

source_image = source_image.permute(1,2,0)

图像的shape变为:torch.Size([228, 300, 3])

你可能感兴趣的:(python,pytorch,pytorch)