pytorch深度学习中torchvision.transforms.ToTensor()使用问题

问题遇到的现象和发生背景

关于torchvision.transforms.ToTensor(),官方解释是把一个取值范围是[0,255]的PIL.Image或者shape为(H,W,C)的numpy.ndarray,转换成形状为[C,H,W],取值范围是[0,1.0]的torch.FloadTensor,但是在使用过程中却发现只是将数据转化成了tensor,并没有映射到0~1

问题相关代码,请勿粘贴截图

from torchvision import transforms
import numpy as np
data = np.random.randint(0, 255, size=300)
img = data.reshape(10,10,3)
print(img.shape)
img_tensor = transforms.ToTensor()(img) # 转换成tensor
print(img_tensor)
输出见下图所示

运行结果及报错内容

结果并未将数据映射到0~1,进行归一化处理

img

只有Ndarray是np.uint8 类型的时候,才会归一化

img


有用记得采纳哦

楼上正确的,需要转成np.uint8才会正确归一化,如果不是该数据类型,需要使用img/255.0归一化。
不然你就加一句data=data.astype(np.uint8),然后试试看下结果就知道了