图片数据增强及标准化
注:transforms.compose()数据增强部分,只对image进行,label不进行数据增强,所以需要在dataset中的__getitem__部分进行label相应的处理,比如变为CHW形式,将数值变为0-1之间等。
torchvision.transfoms
下面介绍图像分类中的图像增强技术。
# 1. 比例缩放(重置图像分辨率)
2. 裁剪
3. 翻转
4. 色度、亮度、饱和度、对比度的变化
5. 灰度化
6. Padding-填充
*padding:填充的宽度,可以是一个值或者元组,分别对应4个边;
*fill:填充的值,可以是一个值(所有通道都用该值进行填充),或者一个3元组(RGB三通道)当padding_mode=constant起作用;
*paddin_mode:constant、edge(填充值为边缘);reflect(从边缘往内一个像素开始做镜像);symmetric(从边缘做镜像)。
利用Compose函数生成一个PiPeLine,进行统一处理
7. Normalize 提供一个所有通道的均值和方差,会将原始数据进行归一化,操作格式是张量(属于度张量数据的变换)
8. transforms.ToTensor()
9. 线性变换-transforms.LinearTransformation()
使用方形变换矩阵和离线计算的mean_vector变换张量图像。给定transformation_matrix和mean_vector,将使矩阵变平。从中拉伸并减去mean_vector,然后用变换矩阵计算点积,然后将张量重新整形为其原始形状。
白化转换:假设X是列向量零中心数据。然后torch.mm计算数据协方差矩阵[D x D],对该矩阵执行SVD并将其作为transformation_matrix传递。
- transformation_matrix(Tensor) - 张量[D x D],D = C x H x W.
- mean_vector(Tensor) - 张量[D],D = C x H x W.