Pytorch张量改变维度

Pytorch tensor to change dimension

我有一个 RGB 图像张量为 (3,H,W),但是 plt.imshow() 无法显示具有这种形状的 RGB 图像。我想将张量更改为 (H,W,3)。我该怎么做,pytorch function .view() 可以吗?

找到方法。使用pytorch permute()方法,详见:https://www.geeksforgeeks.org/python-pytorch-permute-method/

代码:

image.permute(1, 2, 0)

请参考

img_plot = img.numpy().transpose(1, 2, 0)
plt.imshow(img_plot)

使用 torch.Tensor.permute is to apply torch.Tensor.movedim 的替代方法:

image.movedim(0,-1)

这实际上比 image.permute(1,2,0) 更通用,因为它适用于任意数量的维度。它具有在某种 插入 操作中将 axis=0 移动到 axis=-1 的效果。

或与 Numpy 等效,使用 np.moveaxis: