首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Pytorch小技巧-数据增强(下)
局部增强,一般裁剪操作是配合图片旋转操作共同进行,先裁减掉一部分,再进行旋转即可。
用户6719124
2019/12/09
1.7K0
Pytorch小技巧-数据增强(下)
Data augmentation
目前深度学习神经网络对数据的要求很高,不仅数据要相关,而且要求有尽可能更大的数据集。在现实生活中,要想得到大量的数据,不仅要收集各种情景下、各种角度、各个位置的照片,还要确保数据的多样性,只有这样才能确保神经网络学到的特征更加全面
mathor
2020/02/14
8030
Data augmentation
CNN实战(一):pytorch处理图像数据(Dataset和Dataloader)
  pytorch给我们提供了很多已经封装好的数据集,但是我们经常得使用自己找到的数据集,因此,想要得到一个好的训练结果,合理的数据处理是必不可少的。我们以1400张猫狗图片来进行分析:
Cyril-KI
2022/09/16
1.2K0
CNN实战(一):pytorch处理图像数据(Dataset和Dataloader)
Pytorch 中的数据增强方式最全解释
本文主要介绍 Pytorch 中 torchvision.transforms 几个数据增强函数的使用
机器视觉CV
2019/10/28
7.8K0
Pytorch 中的数据增强方式最全解释
AI 应用冷启动困境破解:小样本学习在垂直领域的迁移适配实战
家人们,在 AI 应用的世界里,冷启动堪称 “头号难题”。就好比你开了一家超有格调的新店,却无人问津,AI 模型就算潜力无限,没有足够数据 “投喂”,也只能 “巧妇难为无米之炊”。不过别慌,小样本学习如同 “及时雨”,在垂直领域的迁移适配实战中,正发挥着大作用!今天,咱就全方位探秘小样本学习,帮你破解 AI 应用冷启动困境。
小白的大数据之旅
2025/04/04
2680
AI 应用冷启动困境破解:小样本学习在垂直领域的迁移适配实战
小白学PyTorch | 8 实战之MNIST小试牛刀
在这个文章中,主要是来做一下MNIST手写数字集的分类任务。这是一个基础的、经典的分类任务。建议大家一定要跟着代码做一做,源码和数据已经上传到公众号。回复【pytorch】获取数据和源码哦~
机器学习炼丹术
2020/09/14
8240
小白学PyTorch | 8 实战之MNIST小试牛刀
源码级理解Pytorch中的Dataset和DataLoader
朋友,你还在为构建Pytorch中的数据管道而烦扰吗?你是否有遇到过一些复杂的数据集需要设计自定义collate_fn却不知如何下手的情况?你是否有遇到过数据管道加载速度过慢成为训练性能瓶颈却不知道如何优化的情况?
lyhue1991
2023/02/23
1.4K0
源码级理解Pytorch中的Dataset和DataLoader
用 PyTorch 从零创建 CIFAR-10 的图像分类器神经网络,并将测试准确率达到 85%
一般,深度学习的教材或者是视频,作者都会通过 MNIST 这个数据集,讲解深度学习的效果,但这个数据集太小了,而且是单色图片,随便弄些模型就可以取得比较好的结果,但如果我们不满足于此,想要训练一个神经网络来对彩色图像进行分类,可以不可以呢?
Frank909
2019/01/14
10.2K0
利用pytorch实现图像识别demo
2.准备数据集,并将其转换为适合PyTorch使用的格式(例如,利用 torchvision 库中的 transform 处理图像数据,并将其转换为 tensor)。
疯狂的KK
2023/03/26
1.2K0
【小白学PyTorch】7 最新版本torchvision.transforms常用API翻译与讲解
这个Transforms是常见的图像的转换(包含图像增强等), 然后不同的transforms可以通过Compose函数连接起来(类似于Sequence把网络层连接起来一样的感觉)。后面的是关于图像分割任务了的介绍,因为入门PyTorch主要是图像分类,所以后面先不提了。
机器学习炼丹术
2020/09/14
1.4K0
【小白学PyTorch】7 最新版本torchvision.transforms常用API翻译与讲解
torch04:全连接神经网络--MNIST识别和自己数据集
(2)定义训练数据,加餐部分是使用自己的数据集:(可参考:https://blog.csdn.net/u014365862/article/details/80506147)
MachineLP
2019/05/26
6380
我用 PyTorch 复现了 LeNet-5 神经网络(自定义数据集篇)!
我用 PyTorch 复现了 LeNet-5 神经网络(MNIST 手写数据集篇)!
红色石头
2022/01/10
1.7K0
我用 PyTorch 复现了 LeNet-5 神经网络(自定义数据集篇)!
Pytorch的基本介绍及模型训练流程
PyTorch是一个很著名的支持GPU加速和自动求导的深度学习框架,在最近几年收到学术界的热捧,主要是因为其动态图机制符合思维逻辑,方便调试,适合于需要将想法迅速实现的研究者。PyTorch是Torch7团队开发的。Torch是一个开源科学计算框架,可以追溯到2002年纽约大学的项目。Torch的核心在于在构建深度神经网络及其优化和训练,为图像,语音,视频处理以及大规模机器学习问题提供快速高效的计算方案。为了追求更高的速度,灵活性和可扩展性,Torch采用Lua作为它的开发语言,但lua语言的受众比较局限。为了满足当今业界里Python先行(Python First)的原则,PyTorch应运而生,由Facebook人工智能研究员(FAIR)于2017年在GitHub上开源。顾名思义,PyTorch使用python作为开发语言,近年来和tensorflow, keras, caffe等热门框架一起,成为深度学习开发的主流平台之一。
Here_SDUT
2022/09/19
1.9K0
Pytorch的基本介绍及模型训练流程
从零开始学Pytorch(十八)之kaggle图像分类
我们将运用在前面几节中学到的知识来参加Kaggle竞赛,该竞赛解决了CIFAR-10图像分类问题。比赛网址是https://www.kaggle.com/c/cifar-10.
墨明棋妙27
2022/09/23
4840
【机器学习】小样本学习的实战技巧:如何在数据稀缺中取得突破
小样本学习,作为一种高效的学习范式,旨在利用极为有限的标注样本训练出具备强大泛化能力的模型。其核心策略巧妙地融合了迁移学习、元学习以及数据增强等多种技术,以应对数据稀缺的挑战,进而推动模型在少量数据条件下的有效学习与适应。
2的n次方
2024/10/15
9970
【机器学习】小样本学习的实战技巧:如何在数据稀缺中取得突破
Datawhale 零基础入门CV赛事-Task2 数据读取与数据扩增
由于赛题数据是图像数据,赛题的任务是识别图像中的字符。因此我们首先需要完成对数据的读取操作,在Python中有很多库可以完成数据读取的操作,比较常见的有Pillow和OpenCV。
致Great
2020/05/26
6050
Pytorch的十二生肖分类挑战
在贝塔斯曼AI Udacity奖学金中,学者们不仅必须完成AI Udacity课程,而且还相互挑战,以应用在课程中收集和实践的技能和知识。这些挑战之一是中国十二生肖分类挑战。马上就是中国农历新年之际。
代码医生工作室
2020/02/19
1.4K0
Pytorch的十二生肖分类挑战
Pytroch入坑 3. 自己的人脸数据+迁移学习(resnet18)
本文转载自:http://www.zhongruitech.com/856941441.html
全栈程序员站长
2022/09/01
4100
Pytroch入坑 3. 自己的人脸数据+迁移学习(resnet18)
残差网络 在 CIFAR10上的简单应用
何恺明等人提出的残差网络(ResNet) 在2015年的ImageNet图像识别挑战赛夺魁,并深刻影响了后来的深度神经网络的设计。残差网络的核心思想是:增加网络的深度后的最好还能包含原始函数(原始函数指的是增加深度之前的网络,它把一个input张量映射为一个output张量)作为其元素之一,从而必不会使网络的拟合能力变得更差。 于是,残差块(residual blocks)便诞生了,这个设计对如何建立深层神经网络产生了深远的影响。凭借它,ResNet赢得了2015年ImageNet大规模视觉识别挑战赛。
用户6021899
2022/11/18
6150
残差网络 在 CIFAR10上的简单应用
数据增强之裁剪、翻转与旋转
数据增强又称为数据增广,数据扩增,它是对训练集进行变换,使训练集更丰富,从而让模型更具泛化能力。
timerring
2023/07/20
8360
数据增强之裁剪、翻转与旋转
推荐阅读
相关推荐
Pytorch小技巧-数据增强(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档