在训练神经网络之前,数据是不可或缺的一部分,数据操作主要包括数据预处理(正则化、增强),数据读取和数据加载,下面按照这个顺序依次学习一下。
首先是数据的预处理,这里主要是使用torchvision.transforms
这个模块,内部实现一些基本图像变换使用PIL
模块实现。常用的主要包括以下几种方式:
import torchvision.transforms as T
# 缩放,第一个参数为尺寸,第二个参数为插值方式
T.Resize(size, interpolation=2)
# 中心裁剪,参数为尺寸
T.CenterCrop(size)
# 随机裁剪,第一个参数为尺寸,第二个参数为边缘填补值
T.RandomCrop(size, padding=0)
# 随机水平翻转,概率为0.5
T.RandomHorizontalFlip()
# 随机垂直翻转,概率为0.5
T.RandomVerticalFlip()
# 随机大小和随机图片比例的裁剪
T.RandomResizedCrop(size, scale=