在深度学习中,扩充数据集也叫数据增强(Data Augmentation)
数据增强主要有两种方法
离线扩充:从根本上对数据集进行扩充,与训练模型代码分开操作
在线增强:在小批量数据集进入训练模型之前,进行图像变换操作,与训练模型代码同时操作
数据增强包括:亮度、对比度、色调、饱和度、裁剪、随机调整、组合、镜像、灰度化、随机裁剪、缩放、归一化、旋转等。
框架自带数据集
paddle.vision.datasets
是cv(视觉领域)的有关数据集
paddle.text.datasets
是nlp(自然语言领域)的有关数据集
可以使用__all__
魔法方法进行查看
print('视觉相关数据集:', paddle.vision.datasets.__all__)
print('自然语言相关数据集:', paddle.text.datasets.__all__)
视觉相关数据集: ['DatasetFolder', 'ImageFolder', 'MNIST', 'FashionMNIST', 'Flowers', 'Cifar10', 'Cifar100', 'VOC2012']
自然语言相关数据集: ['Conll05st', 'Imdb', 'Imikolov', 'Movielens', 'UCIHousing', 'WMT14', 'WMT16']
ToTensor
ToTensor是位于paddle.vision.transforms
下的API
作用是将 PIL.Image
或 numpy.ndarray
转换成 paddle.Tensor
ToTensor的作用是将数据归一化到[0,1],并且将图像HWC转化为默认格式CHW。如果需要指定格式需要指定参数。
自带数据集的处理方案
paddle.vision.transforms
中就有有关的处理办法
使用__all__
魔法方法查看所有的处理方法
print('数据处理方法:', paddle.vision.transforms.__all__)
数据处理方法: ['BaseTransform', 'Compose', 'Resize', 'RandomResizedCrop', 'CenterCrop', 'RandomHorizontalFlip', 'RandomVerticalFlip', 'Transpose', 'Normalize', 'BrightnessTransform', 'SaturationTransform', 'ContrastTransform', 'HueTransform', 'ColorJitter', 'RandomCrop', 'Pad', 'RandomRotation', 'Grayscale', 'ToTensor', 'to_tensor', 'hflip', 'vflip', 'resize', 'pad', 'rotate', 'to_grayscale', 'crop', 'center_crop', 'adjust_brightness', 'adjust_contrast', 'adjust_hue', 'normalize']
举例介绍
Compose
将用于数据集预处理的接口以列表的方式进行组合。
Resize
将输入数据调整为指定大小。
ColorJitter
随机调整图像的亮度,对比度,饱和度和色调。