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

相关推荐
吴佳浩3 小时前
Skill 为什么不同于 Tool?Agent 技能库的自演进与动态加载机制
人工智能·agent·ai编程
大模型任我行6 小时前
谷歌:“课程学习”融入扩散模型强化学习
人工智能·语言模型·自然语言处理·论文笔记
AIGCmagic社区6 小时前
具身智能专题:机器人也有Scaling Law?智元GE-Act 2.0用3万小时真机数据给出答案
人工智能·aigc·具身智能
Rosanci6 小时前
谷歌浏览器插件开发实战指南:从 Hello World 到上架发布
大数据·人工智能·chrome·程序人生
明月_清风7 小时前
AI 越来越强,程序员真正的价值到底是什么?
人工智能·后端
m0_466525297 小时前
云从科技上线云起ModelHub:AI团队时代的模型算力基础设施
大数据·人工智能·科技
火山引擎开发者社区7 小时前
OpenViking:给 Codex 加上长期记忆
人工智能
荆棘鸟智能8 小时前
城市感知设备怎么统一接入?从多协议网关到设备模型的中间件架构设计
人工智能·算法·边缘计算
火山引擎开发者社区8 小时前
当 AI 内容真假难辨,谁来为真实签名 —— 证书中心 C2PA 内容可信溯源服务正式发布
人工智能
百万蹄蹄向前冲8 小时前
风扇转了一晚上MVP专家团翻车事故
前端·人工智能