浅谈数据增强
1. 数据增强
什么是数据增强?数据增强是优化数据吗?这种说法并不尽然。首先,数据增强的做法偏向于生成新样本。它是通过对现有数据进行各种变换和处理来生成新的训练样本,从而增加数据集的多样性和数量。但是不会直接修改原始数据集。这样,有助于防止过拟合情况的发生,提高模型的泛化能力。
这是一个偏人工的过程,需要模拟真实世界中的变化,拿视频来说,我们可能需要去掉滤镜效果,计算拍摄视角、光照或者是遮挡。使得特征表示更加具有鲁棒性。
2. 数据增强技巧
官方笔记推荐我们使用PyTorch来做数据增强,列举了一些数据增强技巧。我个人认为这些技巧本身已经比较好了,于是再补充一下我认识到的另一些技巧。
torchvision
PyTorch其实更希望我们使用v2,所以如果把resize函数重写成V2格式就是这样:
2.1 图像大小调整
transforms.Resize((256, 256))
默认参数:
torchvision.transforms.Resize(size, interpolation=InterpolationMode.BILINEAR, max_size=None, antialias=True)
2.2 图像旋转
transforms.RandomHorizontalFlip()
# 写成V2版本
torchvision.transforms.v2.RandomHorizontalFlip(p: float = 0.5)
# 垂直反转
torchvision.transforms.v2.RandomVerticalFlip(p: float = 0.5)
2.3 图像转换为张量
transforms.ToTensor()
# 将图像数据转换为PyTorch的Tensor格式,这是在深度学习中处理图像数据的常用格式。
torchvision.transforms.v2.ToTensor