赞
踩
导入头文件:
# from torchvision import transforms
# transforms.ToTensor()
ToTensor的作用是将导入的图片转换为Tensor的格式,导入的图片为PIL image 或者 numpy.nadrry格式的图片,其shape为(HxWxC)数值范围在[0,255],转换之后shape为(CxHxw),数值范围在[0,1].
# transforms.Normalize()
其作用是将图片在每个通道上做标准化处理,即将每个通道上的特征减去均值,再除以方差。
归一化的作用就是将需要处理的数据,经过一定的处理方法(算法),将其数值限制在一定范围内。在深度学习图像处理中,归一化处理之后,可以使数据更好的响应激活函数,提高数据的表现力,减少梯度爆炸和梯度消失的出现。常见的归一化处理是将数据处理为均值是0,方差是1的高斯分布,而transforms.Normalize()就可以实现这样的功能。
简单来说就是将数据按通道进行计算,将每一个通道是数据计算出其方差与均值,然后再将其每一个通道内的每一个数据减去均值,再除以方差,得到归一化后的结果。
由于 transforms.Normalize()不支持PIL image 格式,所以必须要将图像转换为Tensor格式之后在做标准化处理,做标准化处理的好处在于可以加快网络的收敛,以及提高数据的鲁棒性,防止数据在后续处理中失活,也可以很好的响应激活函数的处理。
output=(input-mean)/std
mean是各通道的均值,std是各通道的方差。
# transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225))
我们经常看到的这些均值与方差,是从ImageNet数据集上的百万张图片中随机抽样计算得到的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。