版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qxqsunshine/article/details/84109949
Pytorch提供了一个torchvision.transforms的包,可以使用transforms进行如下操作:
1、PIL.image / numpy. ndarray 与Tensor相互转化
2、进行归一化
3、对PIL.image进行裁剪、缩放等操作
一、PIL.image / numpy. ndarray 转化为Tensor,常常在训练模型阶段进行数据读取,
Tensor转化为PIL.image / numpy. ndarray则使用在验证模型阶段的数据输出
使用transforms.ToTensor()将PIL.image / numpy. ndarray转化为torch.FloatTensor,再转化为【0,1.0】
使用transforms.ToPILImage将Tensor转化为PIL.image
二、对Tensor进行变换
class torchvision.transforms.Normalize(mean, std)
给定均值:(R,G,B); 方差:(R,G,B) 将会把Tensor正则化,即Normalized_image=(image-mean)/std
例如:把一个取值范围为【0,255】的PIL.Image 或者shape 为(H,W,C)的numpy.ndarray
转换成形状为【C,H,W】,其取值范围为【0,1.0】的troch.FloadTensor
代码实现:
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)
(PS : 其实不太懂这个,到底怎么用)