首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Pytorch小技巧-数据增强(上)

Pytorch小技巧-数据增强(上)

作者头像
用户6719124
发布于 2019-12-05 07:30:38
发布于 2019-12-05 07:30:38
2.1K00
代码可运行
举报
运行总次数:0
代码可运行

目前深度学习神经网络对数据的要求很高,不进数据要相关,且更要有尽可能大的数据集。

那么在现实生活中,想要得到大量的数据,不仅要收集各种情景下、各种角度、各个位置的照片,还有确保数据的多样性。

只有这样才能确保神经网络学到更加全面的特征。

但在现实中若想达到以上目的往往要付出巨大的代价,并且还有对照片上出现的东西进行准确标注,另外对于一些稀有的物种的信息收集更是十分困难。

因此本节介绍一些为神经网络提供更多数据的方法-数据增强。

数据增强有多种手段,包括对原照片进行旋转、拉伸、加噪声等处理。

其实在之前所讲课程中就已经讲了数据增强的方法,

如在数据中加入shuffle=True,将原数据随机打乱,并没有增加照片的数量。但本文所讲的是在原照片数据量较少的情况下进行数据增强,以加入一些经过旋转、拉伸等处理后的图片。

要注意的是采用这种方法加入的数据肯定没有新图片效果好,因为其本质上仍是原图片。

如下图所示

数据增强手段包括有:(1)Flip(图片翻转)、(2)Rotate(旋转)、(3)Random Move & Crop(随机移动、裁剪)、(4)GAN(GAN神经网络)。

首先看数据翻转

如上图所示原图片黄人在右边,经过翻转后黄人在左面,再经过上下翻转后,整个图片倒立。

代码实现方式如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import torch
import torch.nn
import torch.nn.functional as F

train_loader = torch.utils.data.DataLoader(
    datasets.MNIST('data', train=True, download=True,
                   transform=transforms.Compose([
                       transforms.RandomHorizontalFlip(),
                       # transforms.RandomHorizontalFlip()为水平翻转
                       transforms.RandomVerticalFlip(),
                       # transforms.RandomHorizontalFlip()为上下翻转
                       transforms.ToTensor(),
                   ])),
     batch_size=batch_size, shuffle=True)

旋转操作也十分常见

上面分别经过了90°、180°、270°的旋转。

它的代码实现方 式也十分简单

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import torch
import torch.nn
import torch.nn.functional as F

train_loader = torch.utils.data.DataLoader(
    datasets.MNIST('data', train=True, download=True,
                   transform=transforms.Compose([
                       transforms.RandomHorizontalFlip(),
                       # transforms.RandomHorizontalFlip()为水平翻转
                       transforms.RandomVerticalFlip(),
                       # transforms.RandomHorizontalFlip()为上下翻转
                       transforms.RandomRotation(15),
                       # 随机旋转了-15°至15°
                       transforms.ToTensor(),
                       transforms.RandomRotation([90, 180, 270]),
                       # 或者自定义旋转了90°, 180°, 270°
                   ])),
     batch_size=batch_size, shuffle=True)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python pytorch AI机器学习实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Data augmentation
目前深度学习神经网络对数据的要求很高,不仅数据要相关,而且要求有尽可能更大的数据集。在现实生活中,要想得到大量的数据,不仅要收集各种情景下、各种角度、各个位置的照片,还要确保数据的多样性,只有这样才能确保神经网络学到的特征更加全面
mathor
2020/02/14
7870
Data augmentation
Pytorch小技巧-数据增强(下)
局部增强,一般裁剪操作是配合图片旋转操作共同进行,先裁减掉一部分,再进行旋转即可。
用户6719124
2019/12/09
1.7K0
Pytorch小技巧-数据增强(下)
源码级理解Pytorch中的Dataset和DataLoader
朋友,你还在为构建Pytorch中的数据管道而烦扰吗?你是否有遇到过一些复杂的数据集需要设计自定义collate_fn却不知如何下手的情况?你是否有遇到过数据管道加载速度过慢成为训练性能瓶颈却不知道如何优化的情况?
lyhue1991
2023/02/23
1.4K0
源码级理解Pytorch中的Dataset和DataLoader
数据增强之裁剪、翻转与旋转
数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力。
timerring
2023/07/20
7780
数据增强之裁剪、翻转与旋转
AIGC训练效率与模型优化的深入探讨
人工智能生成内容(AIGC)是指利用人工智能技术生成文本、图像、音频等内容的过程。AIGC的核心是深度学习模型,尤其是生成对抗网络(GAN)、变分自编码器(VAE)和大型语言模型(LLM)
DARLING Zero two
2025/02/21
1870
AIGC训练效率与模型优化的深入探讨
Pytorch 中的数据增强方式最全解释
本文主要介绍 Pytorch 中 torchvision.transforms 几个数据增强函数的使用
机器视觉CV
2019/10/28
7.7K0
Pytorch 中的数据增强方式最全解释
Datawhale 零基础入门CV赛事-Task2 数据读取与数据扩增
由于赛题数据是图像数据,赛题的任务是识别图像中的字符。因此我们首先需要完成对数据的读取操作,在Python中有很多库可以完成数据读取的操作,比较常见的有Pillow和OpenCV。
致Great
2020/05/26
5760
利用pytorch实现图像识别demo
2.准备数据集,并将其转换为适合PyTorch使用的格式(例如,利用 torchvision 库中的 transform 处理图像数据,并将其转换为 tensor)。
疯狂的KK
2023/03/26
1.2K0
Dataset和DataLoader
Pytorch通常使用Dataset和DataLoader这两个工具类来构建数据管道。
lyhue1991
2020/07/20
2.5K0
Dataset和DataLoader
使用Pytorch和转移学习进行端到端多类图像分类
将从Kaggle 的Boat数据集开始,以了解多类图像分类问题。该数据集包含约1,500种不同类型的船的图片:浮标,游轮,渡船,货船,吊船,充气船,皮划艇,纸船和帆船。目标是创建一个模型,以查看船只图像并将其分类为正确的类别。
代码医生工作室
2020/06/06
1.2K0
残差网络 在 CIFAR10上的简单应用
何恺明等人提出的残差网络(ResNet) 在2015年的ImageNet图像识别挑战赛夺魁,并深刻影响了后来的深度神经网络的设计。残差网络的核心思想是:增加网络的深度后的最好还能包含原始函数(原始函数指的是增加深度之前的网络,它把一个input张量映射为一个output张量)作为其元素之一,从而必不会使网络的拟合能力变得更差。 于是,残差块(residual blocks)便诞生了,这个设计对如何建立深层神经网络产生了深远的影响。凭借它,ResNet赢得了2015年ImageNet大规模视觉识别挑战赛。
用户6021899
2022/11/18
5910
残差网络 在 CIFAR10上的简单应用
「深度学习一遍过」必修17:基于Pytorch细粒度分类实战
本专栏用于记录关于深度学习的笔记,不光方便自己复习与查阅,同时也希望能给您解决一些关于深度学习的相关问题,并提供一些微不足道的人工神经网络模型设计思路。 专栏地址:「深度学习一遍过」必修篇 目录 1 实战内容简介 2 数据集读取 2.1 dataset 2.2 dataloader 3 模型搭建 3.1 基准模型 3.2 与基准模型相对应的双线性模型 4 性能差异比较 4.1 tensorboard查看测试集准确率差异 4.2 耗时比较(单位:秒) ---- 1 实战内容简介 数据集:CUB-200,共
荣仔_最靓的仔
2022/01/10
7350
「深度学习一遍过」必修17:基于Pytorch细粒度分类实战
数据增强之图像变换与自定义transforms
功能:调整亮度、对比度、饱和度、色相。在照片的拍照过程中,可能会由于设备、光线问题,造成色彩上的偏差,因此需要调整这些属性,抵消这些因素带来的扰动。
timerring
2023/07/20
5700
【机器学习】小样本学习的实战技巧:如何在数据稀缺中取得突破
小样本学习,作为一种高效的学习范式,旨在利用极为有限的标注样本训练出具备强大泛化能力的模型。其核心策略巧妙地融合了迁移学习、元学习以及数据增强等多种技术,以应对数据稀缺的挑战,进而推动模型在少量数据条件下的有效学习与适应。
2的n次方
2024/10/15
8530
【机器学习】小样本学习的实战技巧:如何在数据稀缺中取得突破
AI 应用冷启动困境破解:小样本学习在垂直领域的迁移适配实战
家人们,在 AI 应用的世界里,冷启动堪称 “头号难题”。就好比你开了一家超有格调的新店,却无人问津,AI 模型就算潜力无限,没有足够数据 “投喂”,也只能 “巧妇难为无米之炊”。不过别慌,小样本学习如同 “及时雨”,在垂直领域的迁移适配实战中,正发挥着大作用!今天,咱就全方位探秘小样本学习,帮你破解 AI 应用冷启动困境。
小白的大数据之旅
2025/04/04
1750
AI 应用冷启动困境破解:小样本学习在垂直领域的迁移适配实战
小白学PyTorch | 8 实战之MNIST小试牛刀
在这个文章中,主要是来做一下MNIST手写数字集的分类任务。这是一个基础的、经典的分类任务。建议大家一定要跟着代码做一做,源码和数据已经上传到公众号。回复【pytorch】获取数据和源码哦~
机器学习炼丹术
2020/09/14
8110
小白学PyTorch | 8 实战之MNIST小试牛刀
PyTorch是使用GPU和CPU优化的深度学习张量库——torchvision
CIFAR10 数据集是一个广泛使用的数据集,包含10类彩色图像,每类有6000张图像(5000张训练集,1000张测试集)。下面是如何加载 CIFAR10 的示例:
用户11315985
2024/10/16
3110
PyTorch是使用GPU和CPU优化的深度学习张量库——torchvision
从零开始学Pytorch(十八)之kaggle图像分类
我们将运用在前面几节中学到的知识来参加Kaggle竞赛,该竞赛解决了CIFAR-10图像分类问题。比赛网址是https://www.kaggle.com/c/cifar-10.
墨明棋妙27
2022/09/23
4680
【小白学PyTorch】7 最新版本torchvision.transforms常用API翻译与讲解
这个Transforms是常见的图像的转换(包含图像增强等), 然后不同的transforms可以通过Compose函数连接起来(类似于Sequence把网络层连接起来一样的感觉)。后面的是关于图像分割任务了的介绍,因为入门PyTorch主要是图像分类,所以后面先不提了。
机器学习炼丹术
2020/09/14
1.4K0
【小白学PyTorch】7 最新版本torchvision.transforms常用API翻译与讲解
数据读取与数据扩增方法
https://tianchi.aliyun.com/competition/entrance/531795/introduction
Datawhale
2020/06/16
1.5K0
数据读取与数据扩增方法
推荐阅读
相关推荐
Data augmentation
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验