2025/2/10

Transforms.ToTensor( ) 的注意事項

Pytorch 的 transforms.ToTesor()() 會把numpy 換成 tensor.
但是dimension sequence 不一樣.

ToTensor()()假設參數的 numpy array 是從 PILImage 來的,dimension是: H,W,C
ToTensor()()的 output,符合 pytorch 的 sequence, dimemsion 是: C,H,W

所以 經果 ToTensor( ), array 的 order 會被改掉。

所以...一個 400x500 的 jpg...
img = Image.open('image1.jpg')

tensor1 = transforms.ToTenor()(img)
tensor2 = torch.from_numpy(np.array(img))
tensor1 的 dimension sequence 是 [3,400,500]
tensor2 的 dimension sequence 是 [400,500,3]

另外 tensor1 的 dtype 是 float32, tesor2 是 uint8.
而且 tensor1 會做 normalize.

沒有留言:

張貼留言