深度学习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

相关推荐
CoovallyAIHub4 分钟前
清华Mars Lab发布SLAM-Former:用一个Transformer统一SLAM的前端与后端(附项目地址)
深度学习·算法·计算机视觉
suke10 分钟前
RAG 已死,Agent 永生:理解 AI 检索的范式革命
人工智能·程序员·aigc
cooldream200911 分钟前
大模型分类与应用全景解析:从文本到多模态的智能演进
人工智能·ai·大模型基础
ECT-OS-JiuHuaShan15 分钟前
哥德尔不完备定理中的完备是什么?是还原论证的具足幻想。不还原就是完备,哥德尔搞不完定理
人工智能·数学建模·学习方法·几何学·量子计算·拓扑学·空间计算
i.ajls19 分钟前
强化学习入门-3(AC)
人工智能·深度学习·机器学习·actor-critic
ZHOU_WUYI21 分钟前
LLMs-from-scratch :embeddings 与 linear-layers 的对比
pytorch·python·llm
Blossom.11823 分钟前
把AI“浓缩”到1KB:超紧凑型决策树在MCU上的极限优化实战
人工智能·python·单片机·深度学习·决策树·机器学习·数据挖掘
CoovallyAIHub31 分钟前
AI基础设施新玩家:Tinker如何重新定义LLM微调工作流?
深度学习·算法·计算机视觉
努力努力再nuli33 分钟前
学习华为昇腾AI教材图像处理原理与应用部分Day1
图像处理·人工智能·学习
学术小白人33 分钟前
【IEEE出版 | 早鸟优惠本周截止】人工智能驱动图像处理与计算机视觉技术国际学术研讨会 (AIPCVT 2025)
图像处理·人工智能·计算机视觉