'Pytorch tensor to change dimension

I have a RGB image tensor as (3,H,W), but the plt.imshow() can not show RGB image with this shape. I want to change the tensor to (H,W,3). How can I do that, is pytorch function .view() can do that?



Solution 1:[1]

An alternative to using torch.Tensor.permute is to apply torch.Tensor.movedim:

image.movedim(0,-1)

Which is actually more general than image.permute(1,2,0), since it works for any number of dimensions. It has the effect of moving axis=0 to axis=-1 in a sort of insertion operation.

Or equivalently with Numpy, using np.moveaxis:

Solution 2:[2]

Please refer to this question

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

Solution 3:[3]

Find the method. use pytorch permute() method, see details: https://www.geeksforgeeks.org/python-pytorch-permute-method/

code:

image.permute(1, 2, 0)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2
Solution 3 PinkR1ver