赞
踩
随着深度学习在计算机视觉的广泛应用,以卷积神经网络为代表的深度学习模型取得了突破性的进展。在现实世界的应用中,获取大量且高质量的数据集往往既昂贵又耗时,而且由于隐私问题和罕见事件的捕捉难度,获取这些数据集变得更加复杂。因此,一种经济高效的方法是采用数据增强技术,以降低对大量训练数据的需求,帮助开发者更高效地开发出精确的AI模型。
数据增强通常是依赖从现有数据生成新的数据样本来人为地增加数据量的过程。这包括对数据进行不同方向的扰动处理或使用深度学习模型在原始数据的潜在空间(latent space)中生成新数据点从而人为的扩充新的数据集。
在之前的代码中我们使用PyTorch框架来加载和增强图像数据:
使用
transforms.Resize((256,256))
将所有图像调整到256x256像素的尺寸,这有助于确保输入数据的一致性。
transforms.RandomHorizontalFlip()
随机地水平翻转图像,这种变换可以模拟物体在不同方向上的观察,从而增强模型的泛化能力。
transforms.RandomVerticalFlip()
随机地垂直翻转图像,这同样是为了增加数据多样性, 让模型能够学习到不同视角下的特征。
transforms.ToTensor()
将图像数据转换为PyTorch的Tensor格式,这是在深度学习中处理图像数据的常用格式。
transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.2257])
对图像进行归一化处理,这里的均值和标准差是根据ImageNet数据集计算得出的,用于将图像像素值标准化,这有助于模型的训练稳定性和收敛速度。
mixup是一种简单而有效的数据增强的方法,该方法在图像、文本、语音、推荐、GAN、对抗样本防御等多个领域都能显著提高效果。mixup论文被ICLR2018收录,后续又出现了一系列改进方法。
Cutout的出发点和随机擦除一样,也是模拟遮挡,目的是提高泛化能力,实现上比Random Erasing简单,随机选择一个固定大小的正方形区域,然后采用全0填充就可以了,当然为了避免填充0值对训练的影响,应该要对数据进行中心归一化操作,norm到0。
就是将一部分区域cut掉但不填充0像素而是随机填充训练集中的其他数据的区域像素值,分类结果按一定的比例分配。
CutMix方法中,剪切和粘贴操作是关键步骤。具体来说,剪切和粘贴过程包括以下步骤:
1. 从训练集中随机选择两个图像和它们的标签。
2.随机选择一个剪切区域的大小和位置。
3.将第一个图像的剪切区域粘贴到第二个图像上,得到一个新的图像。
4.根据剪切区域的大小,计算两个图像的标签的加权平均值,得到一个新的标签。
参考、原文链接:https://blog.csdn.net/weixin_34910922/article/details/119791059
在这几天的学习中,学习时间虽然很短,但让我对于机器学习和深度学习有了一个初步的了解,为接下来的学习打下坚实的基础,感谢Datawhale AI夏令营,在此次活动中收获了很多。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。