提高模型的泛化能力最重要的3大因素是数据、模型和损失函数,其中数据又是3个因素中最重要的因素。但数据的获取往往不充分或成本比较高。那是否有其他方法,可以快速又便捷地增加数据量呢?在一些领域存在,如图像识别、语言识别等,可以通过水平或垂直翻转图像、裁剪、色彩变换、扩展和旋转等数据增强技术来增加数据量,被证明是非常有效地。
随机比例缩放主要使用的是torchvision.transforms.Resize()。
随机裁剪有两种方式,一种是对图像在随机位置进行截取,可传入裁剪大小,使用的函数为:torhvision.transforms.RandomCrop(),另外一种是在中心,按比例裁剪,函数为:torchvision.transforms.CenterCrop()。
翻转猫还是猫,不会改变其类别。通过翻转图像可以增加其多样性,所以随机翻转也是一种非常有效地手段。在torchvision中,随机翻转使用的是torchvision.transforms.RandomHorizontalFlip()、torchvision.transforms.RandomVerticalFlip()和torchvision.transforms.RandomRotation()等。
除了形状变化外,颜色变化又是另外一种增强方式,其可以设置亮度变化、对比度变化和颜色变化等,在torchvision中主要是用torchvision.transforms.ColorJitter()来实现的。
还可以使用torchvision.transforms.Compose()函数把以上这些变化组合在一起。[插图]