深度学习pytorch——数据增强(持续更新)

背景介绍

大量的数据是防止过拟合的关键,但是我们如何去获取大量的数据,是自己去拍摄、录制吗?显然这种方式有极高的成本。我们可以对同一张图片进行变换得到多张图片,比如原来只有10张图片,通过变换变成了20张图片,但是并不能无限的增长,也是有限制的,这种方法就叫做数据增强。数据增强的成本基本为0,虽然最后得到的图片效果也没有原图片好,但是有总比没有强,会在一定程度上增强我们的模型。
一张网球照片不同的变换

翻转(Flip)

翻转效果图

代码实现:

python 复制代码
train_loader = torch.utils.data.DataLoader(
    datasets.MNIST('../data', train=True, download=True,
                   transform=transforms.Compose([
                       transforms.RandomHorizontalFlip(),  #水平翻转
                       transforms.RandomVerticalFlip(),  #竖直翻转
                       transforms.ToTensor()
                   ])),
    batch_size=batch_size, shuffle=True)

旋转(Rotate)

旋转效果图

代码实现:

python 复制代码
train_loader = torch.utils.data.DataLoader(
    datasets.MNIST('../data', train=True, download=True,
                   transform=transforms.Compose([
                       transforms.RandomRotation(15),  #-15度-15度的角度随机旋转
                       transforms.RandomRotation([90, 180, 270]),  #随机旋转90度,180度,270度
                       transforms.ToTensor()
                   ])),
    batch_size=batch_size, shuffle=True)

缩放(Scale)

缩放效果图

代码实现:

python 复制代码
train_loader = torch.utils.data.DataLoader(
    datasets.MNIST('../data', train=True, download=True,
                   transform=transforms.Compose([
                       transforms.Resize([32, 32]), #scale 缩放
                       transforms.ToTensor()
                   ])),
    batch_size=batch_size, shuffle=True)

裁剪或部分式旋转(Crop Part)

裁剪或部分式旋转效果图

代码实现:

python 复制代码
train_loader = torch.utils.data.DataLoader(
    datasets.MNIST('../data', train=True, download=True,
                   transform=transforms.Compose([
                       transforms.RandomRotation(15),  #-15度-15度的角度随机旋转
                       transforms.RandomRotation([90, 180, 270]),  #随机旋转90度,180度,270度
                       transforms.RandomCrop([28, 28]), #随机裁剪
                       transforms.ToTensor()
                   ])),
    batch_size=batch_size, shuffle=True)

加噪声(Noise)

加噪声效果图

参考:课时75 数据增强_哔哩哔哩_bilibili

相关推荐
OpenMiniServer16 小时前
当 AI 成为 Git 里的一个“人”
人工智能·git
bryant_meng17 小时前
【DLNR】《High-frequency Stereo Matching Network》
人工智能·深度学习·计算机视觉·stereo matching·dlnr
梦雨羊17 小时前
Base-NLP学习
人工智能·学习·自然语言处理
丝斯201117 小时前
AI学习笔记整理(42)——NLP之大规模预训练模型Transformer
人工智能·笔记·学习
实战项目17 小时前
大语言模型幻觉抑制方法的研究与实现
人工智能·语言模型·自然语言处理
zstar-_17 小时前
UAVDT数据集疑似用AI进行标注
人工智能
过期的秋刀鱼!17 小时前
机器学习-逻辑回归的成本函数的补充-推导
人工智能·机器学习·逻辑回归
shangjian00717 小时前
AI大模型-核心概念-机器学习
人工智能·机器学习
kaizq18 小时前
大语言模型典型本地搭建及其应用
人工智能·ollama·cherry studio·文本对话聊天·知识库/代码库·mcp服务编制·大语言模型llm本地应用
wenzhangli718 小时前
2025软件行业寒冬突围:破解AI编程冲击与项目制困局,一拖三闭环方案成破局关键
人工智能·ai编程