Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Data augmentation

Data augmentation

作者头像
mathor
发布于 2020-02-14 12:09:31
发布于 2020-02-14 12:09:31
77500
代码可运行
举报
文章被收录于专栏:mathormathor
运行总次数:0
代码可运行

目前深度学习神经网络对数据的要求很高,不仅数据要相关,而且要求有尽可能更大的数据集。在现实生活中,要想得到大量的数据,不仅要收集各种情景下、各种角度、各个位置的照片,还要确保数据的多样性,只有这样才能确保神经网络学到的特征更加全面

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

因此我们这里介绍一些为神经网络提供更多数据的方法——数据增强(Data augmentation)

数据增强有很多手段,包括对原照片进行旋转、拉伸、加噪声等。但是采用这种方法加入的数据肯定没有新照片的效果好,因为其本质上仍是原图片

如下图所示:

数据增强的手段包括:

  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
from torchvision import datasets, transforms

train_loader = torch.utils.data.DataLoader(
    datasets.MNIST('../data', train=True, download=True,
                   transform=transforms.Compose([
                       # Random表示有可能做,所以也可能不做
                       transforms.RandomHorizontalFlip(),# 水平翻转
                       transforms.RandomVerticalFlip(), # 上下翻转
                       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
from torchvision import datasets, transforms

train_loader = torch.utils.data.DataLoader(
    datasets.MNIST('../data', train=True, download=True,
                   transform=transforms.Compose([
                       # Random表示有可能做,所以也可能不做
                       transforms.RandomHorizontalFlip(),# 水平翻转
                       transforms.RandomVerticalFlip(), # 上下翻转
                       transforms.RandomRotation(15), # 随机旋转-15°~15°
                       transforms.RandomRotation([90, 180, 270]) # 随机在90°、180°、270°中选一个度数来旋转,如果想有一定概率不旋转,可以加一个0进去
                       transforms.ToTensor(),
                   ])),
    batch_size=batch_size, shuffle=True
)

还可以把图片进行缩放

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
为 iPhone 默认日历添加法定节假日放假日程
iPhone 日历小巧实用,除了日历查询以及常规的定制日程提醒之外,其实咱们还可以稍微自定义一下,让它更智能一些,实时同步我们国家的法定节假日放假安排,具体操作如下:
王图思睿
2021/06/16
3.8K0
Python生成中国节假日工作表,快速给数据库内生成工作日历
有时候,我们处理一些业务,比如:计算员工请假的时间工作日;就需要数据库内存在一张工作日历,记录调休和节假日。
Mintimate
2024/08/11
1.2K0
Python生成中国节假日工作表,快速给数据库内生成工作日历
iOS 工作日——过滤法定节假日日历提醒的实现
笔者五一之前补班的时候,闹钟没响,早上差点迟到了。笔者闹钟设置的是周一到周五,iPhone没有法定节假日的设置,也没有补休的设置。。。。笔者就想要解决这个痛点,梦想着,要是做出来了,发布到商店,从此走上人生巅峰,赢取白。。。。
莫空9081
2021/06/15
7K0
好物周刊#40:多功能文件管理器
中国节假日、调休、补班日历,ICS 格式,支持 IPhone、Google Calendar、Outlook 等客户端订阅。
村雨遥
2024/01/22
2410
好物周刊#40:多功能文件管理器
解锁安卓超能力,丰富插件为所欲为! | 开源日报 No.159
LSPosed/LSPosedhttps://github.com/LSPosed/LSPosed
小柒
2024/01/20
2240
解锁安卓超能力,丰富插件为所欲为! | 开源日报 No.159
❤️肝下25万字的《决战Linux到精通》笔记,你的Linux水平将从入门到入魔❤️【建议收藏】
因为AT&T(通用电气)的政策改变,在Version 7 Unix推出之后,发布新的使用条款,将UNIX源代码私有化,在大学中不再能使用UNIX源代码。Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。
全栈程序员站长
2022/09/05
2.3K0
❤️肝下25万字的《决战Linux到精通》笔记,你的Linux水平将从入门到入魔❤️【建议收藏】
太赞了!最全的 Python 处理日期与时间的全面总结!
https://www.biaodianfu.com/python-datetime.html
AirPython
2021/11/08
6K0
1000套安卓(Android)毕业设计(带论文)、大作业、实例快速下载 (Android Studio)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136503.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/07
3.7K2
Python 人工智能:1~5
在本章中,我们将讨论人工智能(AI)的概念及其在现实世界中的应用。 我们在日常生活中花费了大量时间与智能系统进行交互。 这可以采取以下形式:在互联网上搜索某些内容,进行生物特征识别的人脸识别或将口语单词转换为文本。 人工智能是这一切的核心,它正在成为我们现代生活方式的重要组成部分。 所有这些系统都是复杂的实际应用,而 AI 通过数学和算法解决了这些问题。 在整本书中,我们将学习可用于构建此类应用的基本原理。 我们的总体目标是使您能够应对日常生活中可能遇到的具有挑战性的新 AI 问题。
ApacheCN_飞龙
2023/04/23
9580
一种绝对提高开发水平的方法
如果做了多年开发的你发现自己的水平一直上不去,你可能要提高自己的英文水平了,英语就是你技术的瓶颈,对有些人可能是硬伤。
张果
2018/07/31
9.3K2
一种绝对提高开发水平的方法
iPhone使用教程_iphone基础使用
大家好,又见面了,我是你们的朋友全栈君。 iPhone史上最全的使用教程 iPhone的解锁、越狱、激活、固件等等是什么意思,有什么分别 这几天看见好多新人问这几个词的含义及区别。我在这儿说说我的看法,不是官方解释,不懂的学习一下,懂的绕道,如有错误,敬请指正! 第一次买来时或恢复官方固件后,iPhone会处于那种只能拨打紧急电话状态,不能使用其它功能,如果要使用其它功能,就必须进行一项操作,那就是“激活”。一般有锁版的只有使用对应运营商的卡(如美国的AT&T卡)或者无锁版使用任何卡,才可以激活。激活之
全栈程序员站长
2022/09/29
14.1K0
《增长黑客》节选与笔记[通俗易懂]
这本书涉及了很多具体又贴合现实的互联网产品问题,即使你是非专业人士,也应该读一读,了解开发者是如何把你当猫耍的,以便你更好地认识一些套路,解锁,为选择手机软件或者云端应用擦亮眼睛!
全栈程序员站长
2022/08/27
7.8K0
人工智能学术速递[10.19]
【1】 Discovering and Achieving Goals via World Models 标题:通过世界模型发现和实现目标 链接:https://arxiv.org/abs/2110.09514
公众号-arXiv每日学术速递
2021/10/21
1.5K0
金融市场中的人工智能:新算法和解决方案(全)
金融市场可能是少数真正可以被描述为复杂系统的人类成就之一。复杂系统是物理学中的结构,它们:(a) 从组件之间的相互作用中获得其动态的很大一部分,(b) 相互作用高度非线性,并且往往根据其自身的动态(反馈)而变化,© 系统的行为不能直接归因于个体相互作用的纯和:整体远大于个体部分的总和,(d) 并由此产生两个非常重要的后果:对初始条件的非常强烈的依赖(从相似的情况开始,我们观察到完全不同的最终状态)(一个典型的例子是天气预报)。
ApacheCN_飞龙
2024/05/16
5540
金融市场中的人工智能:新算法和解决方案(全)
社会工程:攻击系统、国家和社会(一)
社会工程是一种极其有效的攻击过程,超过 80% 的网络攻击,其中超过 70% 是来自国家级别的,都是通过利用人类而不是计算机或网络安全漏洞发起和执行的。因此,要构建安全的网络系统,不仅需要保护构成这些系统的计算机和网络,还需要对其人类用户进行安全程序的教育和培训。
ApacheCN_飞龙
2024/05/24
2860
相关推荐
为 iPhone 默认日历添加法定节假日放假日程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验