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

相关推荐
之歆1 小时前
Spring AI入门到实战到原理源码-MCP
java·人工智能·spring
知乎的哥廷根数学学派2 小时前
面向可信机械故障诊断的自适应置信度惩罚深度校准算法(Pytorch)
人工智能·pytorch·python·深度学习·算法·机器学习·矩阵
且去填词2 小时前
DeepSeek :基于 Schema 推理与自愈机制的智能 ETL
数据仓库·人工智能·python·语言模型·etl·schema·deepseek
待续3012 小时前
订阅了 Qoder 之后,我想通过这篇文章分享一些个人使用心得和感受。
人工智能
weixin_397578022 小时前
人工智能发展历史
人工智能
强盛小灵通专卖员2 小时前
基于深度学习的山体滑坡检测科研辅导:从论文实验到系统落地的完整思路
人工智能·深度学习·sci·小论文·山体滑坡
OidEncoder2 小时前
从 “粗放清扫” 到 “毫米级作业”,编码器重塑环卫机器人新能力
人工智能·自动化·智慧城市
Hcoco_me3 小时前
大模型面试题61:Flash Attention中online softmax(在线softmax)的实现方式
人工智能·深度学习·自然语言处理·transformer·vllm
哥布林学者3 小时前
吴恩达深度学习课程五:自然语言处理 第一周:循环神经网络 (七)双向 RNN 与深层 RNN
深度学习·ai
阿部多瑞 ABU3 小时前
`chenmo` —— 可编程元叙事引擎 V2.3+
linux·人工智能·python·ai写作