关于 keras 中用ImageDataGenerator 做 data augmentation 的问题 5C

各位大神好,小白刚接触深度学习和keras.
有两个问题一直困扰着我,用keras中的 ImageDataGenerator做data augmentation时,
(1)每个epoch的图片都不同,这样的做,反向传播时修改的参数还准确吗,训练模型严谨吗,
(2)我试着输出过训练图像,发现里面没有原始图像,这样做数据扩张感觉很慌,是不是我使用方法的问题啊,请大佬指点迷津

datagen = ImageDataGenerator(
        rescale=None,
        shear_range=0.2,
        zoom_range=[0.95,1.05],
        rotation_range=10,
        horizontal_flip=True,
        vertical_flip=True,
        fill_mode='reflect',

        )

training = model.fit_generator(datagen.flow(data_train, label_train_binary, batch_size=n_batch, shuffle=True), callbacks=[checkpoint,tensorboard,csvlog],validation_data=(data_val,label_val_binary),steps_per_epoch=len(data_train)//n_batch, nb_epoch=10000, verbose=1)

1个回答

(1)data augmentation是在一定程度内随机扩充数据,这样做肯定是好的,如果每个epoch图片都相同,那么反向传播才失去意义了;
(2)增强后的图像多少与原图有些差异,你可以靠参数控制差异范围。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数据增强(data augmentation)
数据增强(data augmentation) 数据增强主要用来防止过拟合,用于dataset较小的时候。 之前对神经网络有过了解的人都知道,虽然一个两层网络在理论上可以拟合所有的分布,但是并不容易学习得到。因此在实际中,我们通常会增加神经网络的深度和广度,从而让神经网络的学习能力增强,便于拟合训练数据的分布情况。在卷积神经网络中,有人实验得到,深度比广度更重要。 然而随着神经网络的加深,需...
Data Augmentation(数据扩充)
图像数据:旋转|反射变换(Rotation/Reflection):随机旋转图像一定角度; 改变图像内容的朝向。翻转变换(flip): 沿着水平或者垂直方向翻转图像。缩放变换(zoom): 按照一定的比例放大或者缩小图像。平移变换(shift): 在图像平面上对图像以一定方式进行平移。(可以采用随机或人为定义的方式指定平移范围和平移步长, 沿水平或竖直方向进行平移. 改变图像内容的位置)尺度变换(...
深度学习: 数据增强(Data Augmentation)
数据扩充(data augmentation),又名 数据增强 / 数据增广。 在深度学习中,当数据量不大时可能会导致过拟合,使得训练误差很小,但测试误差却特别大。怎么办呢,你又没钱买数据?显然最好的办法(之一,其他方法请参看“当数据量不够大的时候”)就是自己“造”数据——人工增加训练集的大小,也就是Data Augmentation Transformation。 不同的任务背景下,通常我们可以...
深度学习样本生成data augmentation
在做深度学习图片分类的时候,很多是有些样本不足这个时候我们就会自己生成样本,如opencv对图片旋转,扭曲等等操作。google了一下deep learning data augmentation 发现了github几种开源的的方法主要是使用opencv结合python的PIL库。最终发现Augmentor好用 本文内容如下: 传统的opencv结合python的multiprocessing任务
数据增强的方法 Data Augmentation
数据增强的方法:1.水平翻转(镜像操作)2.随机裁剪3.尺度变化4.平移操作5.角度变化6.拉伸操作。。。。。。。。。数据增强的方法主要有这6种,每种方法又可以和其他的一种或者多种方法结合在一起,这样就可以产生更多的数据。...
深度学习: 数据扩充 (Data Augmentation)
Introduction 数据扩充(data augmentation),又名 数据增强。 其本质即: 缺少海量数据时,为了保证模型的有效训练,一分钱掰成两半花。 数据扩充方法包括: 简单方法 复杂方法 翻转、旋转、尺度变换、随机抠取、色彩抖动 Fancy PCA、监督式抠取 方法介绍 1. 翻转 包括:水平翻转、垂直翻转、水平垂直翻转。
深度学习之:数据增强 (Data Augmentation)
深度学习之:数据增强 (Data Augmentation) 内容持续更新中,欢迎各位在评论区补充和讨论! 在当前AI这个数据驱动的时代,没有数据几乎是万万不能的。 你的数据太少? 别怕,我们有数据增强技术!   当前流行的数据增强技 1.翻转(Flip) 可以对图片进行水平和垂直翻转。一些框架不提供垂直翻转功能。但是,一个垂直反转的图片等同于图片的180度旋转,然后再执行水平翻转...
Keras中的多输入ImageDataGenerator图片生成器
参考keras官网以及https://github.com/Deep-Learning-Person-Re-Identification/ 通过重载Keras自带的ImageDataGenerator来实现同时输入多张图片。该代码是为了实现Keras中的TripletNet中的Triplet Loss。 更多部分参考: http://blog.csdn.net/yjy728/article/...
keras 自定义ImageDataGenerator用于多标签分类
感想 keras提供了flow_from_directory用于单个标签分类,但是对图片的多标签分类没有支持,这就需要我们自己动手实现ImageDataGenerator,我这里把我实现的用于多标签分类的自定义DataGenerator分享出来,读者可以根据自己的情况来进行修改。 数据集我用的是经过整理了之后的NUS-WIDE数据集,下载地址为:https://download.csdn.ne...
keras的图像预处理全攻略(二)—— ImageDataGenerator 类
上一篇文章已经详细介绍了keras进行图像预处理的一些常规操作,但是有一个问题就是上面的那些方法都是针对一张图片进行操作的,我们在深度学习的时候,当然也可以事先先一张一张将图片进行预处理,然后再将图片放入训练,但是这样做效率比较低下,而且不是实时的,即图像的预处理变成了完全的事先操作,和后面的训练毫无关系。那有没有效率更加高校一些,在训练的时候边训练边处理的实时操作方法呢?keras提供了...
使用Keras中ImageDataGenerator进行批次读图
ImageDataGenerator位于keras.preprocessing.image模块当中,可用于做数据增强,或者仅仅用于一个批次一个批次的读进图片数据.一开始以为ImageDataGenerator是用来做数据增强的,但我的目的只是想一个batch一个batch的读进图片而已,所以一开始没用它,后来发现它是有这个功能的,而且使用起来很方便. ImageDataGenerator类包含了...
keras的图像预处理全攻略(三)—— ImageDataGenerator 类的辅助类
上一篇文章介绍了keras图像预处理的核心类—— ImageDataGenerator 类,其实关于keras的图像预处理与图像generator都是通过这个类来实现的,第一篇文章介绍的相关方法都是为这个类服务的辅助方法,本文要介绍的几个类都是为ImageDataGenerator 类服务的辅助类,所以在实际应用中,一般不需要用到辅助方法与辅助类,只需要使用ImageDataGene...
【方法】数据增强(Data Augmentation)
在训练过程中,网络优化是一方面,数据集的优化又是另一方面。数据集会存在各类样本不均匀的情况,也就是各类样本的数量不一样,有的甚至差别很大。为了让模型具有更强的鲁棒性,采用Data Augmentation是一个不错的选择。 常用的方法 ImageDataGenerator()函数 常用的方法 Color Jittering:对颜色的数据增强:图像亮度、饱和度、对比度...
数据扩增方法 Data Augmentation
1. Common methods mirroring 镜像水平翻转 random cropping 随机裁切 rotation shearing local warping 2. Color shifting 给R、G、G颜色分量增加不同的权重,例如R+20, G-20, B+20等等 PCA color augmentation (AlexNet paper) ...
使用Keras进行深度学习的图像增强(Image Augmentation)
使用Keras进行深度学习的图像增强(Image Augmentation) Keras是一个高层神经网络API,Keras由纯Python编写而成并基Tensorflow、Theano以及CNTK后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras: 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性) 支持CNN和RNN,或...
CNN Data Augmentation(数据增强)-旋转
1、原始状态最初的图像是这个样子的 .xml文件张下面这个样子<annotation> <object> <name>face</name> <difficult>0</difficult> <bndbox> <xmin>315.307918</xmin> <ymin>240.234604<
【深度学习】数据增强(Data Augmentation)numpy、opencv实现
深度学习是以数据推动的学科,深层神经网络一般都需要大量的训练数据才能获得比较理想的结果。在数据量有限的情况下,可以通过数据增强(Data Augmentation)来, 提高模型鲁棒性,避免过拟合。 数据增强的方法有很多种,比如旋转、水平翻转、垂直翻转、随机裁剪、色彩扰动、加入噪声、随机缩放等等。本文只讨论和实现两种最常用和最基本的方法:随机裁剪和水平翻转。 一、随机裁剪 以cifar-10...
AutoAugment Learning Augmentation Policies from Data
AutoAugment Learning Augmentation Policies from Data.(CVPR)论文
点云 数据增强(Data Augmentation):方法与python代码
数据集增强(Data Augmentation)是机器学习常用的数据预处理方法。例如,当手头的数据量太少时,可以人工生成一些有意义的数据用来训练,这种数据获取方法的突出优点是:成本低,效果好。另外,当用来分类的数据集有数据倾斜(skewed data)即某一类样本比另一类多很多时,可以这对样本较少的一类进行数据增强。 在图像领域,常用的数据增强方法有:旋转,镜像,缩放等。 而在激光点云中,常用...
图片的数据增强(Data Augmentation)方法
在深度学习中,为了避免出现过拟合(Overfitting),通常我们需要输入充足的数据量.若数据量比较小,可以对原有的图像数据进行几何变换,改变图像像素的位置并保证特征不变。 旋转 | 反射变换(Rotation/reflection): 随机旋转图像一定角度; 改变图像内容的朝向; 翻转变换(flip): 沿着水平或者垂直方向翻转图像; 缩放变换(zoom): 按照一定的比例放大或者缩小图像; 平
深度学习(十四):数据增强Data Augmentation
这是一系列深度学习的介绍,本文不会涉及公式推导,主要是一些算法思想的随笔记录。 适用人群:深度学习初学者,转AI的开发人员。 编程语言:Python 参考资料:吴恩达老师的深度学习系列视频 吴恩达老师深度学习笔记整理 深度学习500问 唐宇迪深度学习入门视频课程 笔记下载:深度学习个人笔记完整版 数据增强 ...
通用数据增强方法(Data Augmentation)
通用数据增强方法(Data Augmentation) 1、前言 机器学习尤其是深度学习中,为了防止模型过拟合,数据增强也是一种非常有效的方法,好多牛逼的模型除了网络结构精妙意外,在数据(比较吃数据的有监督深度学习)上也做了不可忽视的工作,才有state of the art的效果。来看一张图: C10和C100是没有经过数据增强的训练效果,C10+和C100+则是经过数据增强的效果...
数据预处理--数据扩增/Data Augmentation/图像增强
  若增加训练数据,则能够提升算法的准确率,因为这样可以避免过拟合,更好地泛化;而避免了过拟合你就可以增大你的网络结构了。   可以大量使用数据增广。 1)几何变换   包括:弹性变换(Elastic Transform)、透视变换(Perspective Transform)、分段仿射变换(Piecewise Affine transforms)、枕形畸变(Pincushion Distorti...
深度学习避免过拟合的方法---Data Augmentation
深度学习中的Data Augmentation方法在深度学习中,为了避免出现过拟合(Overfitting),通常我们需要输入充足的数据量。当数据量不够大时候,常常采用以下几种方法:Data Augmentation:通过平移、 翻转、加噪声等方法从已有数据中创造出一批“新”的数据,人工增加训练集的大小。Regularization:数据量比较小会导致模型过拟合, 使得训练误差很小而测试误差特别大.
深度学习中的数据增强(data augmentation)
直接上代码:#encoding:utf-8 ''' tf 参考链接 :https://tensorflow.google.cn/api_guides/python/image 增加数据量,减轻过拟合,增强模型的泛化能力 在预测时也可以使用 ''' import numpy as np import os import math import tensorflow as tf from skimag...
02-深度学习中的Data Augmentation方法
02-深度学习中的Data Augmentation方法在深度学习中,为了避免出现过拟合(Overfitting),通常我们需要输入充足的数据量。当数据量不够大时候,常常采用以下几种方法: Data Augmentation:通过平移、 翻转、加噪声等方法从已有数据中创造出一批“新”的数据,人工增加训练集的大小。 Regularization:数据量比较小会导致模型过拟合, 使得训练误差很小而测试误
tensorflow Data Augmentation 代码(翻转,亮度,裁切)
《一》     Encoding and Decoding 1. tf.image.decode_jpeg(contents, channels=None, ratio=None, fancy_upscaling=None, try_recover_truncated=None, acceptable_fraction=None, name=None) Decode a JPEG-encode...
keras的图像预处理全攻略(四)—— ImageDataGenerator 类实践案例
前言:前面已经详细介绍了keras整个图像预处理模块的详细流程,参见下面两篇文章: keras的图像预处理全攻略(二)—— ImageDataGenerator 类 keras的图像预处理全攻略(三)—— ImageDataGenerator 类的辅助类 本文结合实际案例来说说明到底该怎么应用ImageDataGenerator 类以及需要注意的一些事项 一、图像分类问题中Im...
利用imgaug进行数据增强data augmentation
在数据量不够的时候需要进行data augmentation即数据增强,对数据量进行扩充。 在这里使用imgaug库,此python库可以为机器学习项目扩充图像,它将一组输入图像转换为一组新的,数量更多的略微改变的图像。 库的安装使用这里不再赘述,官网 https://github.com/aleju/imgaug 上的描述很详尽,简单易用。 若读取的图片数据为image,image应该有四个维度...
目标检测图像数据增强(Data Augmentation)—— 旋转
参考https://blog.csdn.net/u014540717/article/details/53301195
常见的数据扩充(data augmentation)方法
注:此文章为吴恩达教授的deeplearning.ai课程笔记,文中图片均来自课程ppt。 image.png 1.Mirroring:对图像进行翻转 2.Random Cropping:随机的裁剪 3.Rotation:旋转 4.Shearing:裁剪 5.Local warping:局部的变形,调整 6.使用GAN(生成对抗网络):在原有数据集的基础上生成新的数据,从而训练一...
SSD代码解读(二)——Data Augmentation
SSD系列代码解读:(一) Prior Box SSD系列代码解读:(二) Data Augmentation SSD系列代码解读:(三)MultiboxLoss 本部分代码是pytorch版本的,非官方的caffe实现,贴上代码解读的同时会与caffe实现进行比较。先贴代码 import torch from torchvision import transforms import ...
data augmentation 数据增强方法总结
1、问题描述 收集数据准备微调深度学习模型时,经常会遇到某些分类数据严重不足的情况,另外数据集过小容易造成模型的过拟合。 本文参考和中对于数据增强方法的一些tips,后续会附上自己实现的C++代码; 2、data augmentation常用方法 Color Jittering:对颜色的数据增强:图像亮度、饱和度、对比度变化(此处对色彩抖动的理解不知是否得当);PCA  J
Keras学习笔记---keras做回归问题
参考caffe做回归问题,这里主要是改caffe的回归代码为keras代码,顺便熟悉keras的流程。caffe的训练数据主要是通过这篇博客网址得到训练数据。这里主要是通过keras书写网络,同时做相应的预测。 首先看一下caffe的网络结构图: 这里按照这个网络搭建keras的网络: # coding=utf-8 from keras.layers import merge
Keras 数据增强 ImageDataGenerator 多输入 多输出
import os os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" os.environ["CUDA_VISIBLE_DEVICES"]=""import sys import gc import time import cv2 import random import numpy as np import pandas as pd import
python下运用keras中内置的ImageDataGenerator实现图像的简单增广
图片生成器ImageDataGenerator 作用:生成一个batch的图像数据,支持实时数据提升。训练时该函数会无限生成数据,直到达到规定的epoch次数为止。 Code import os from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img data...
keras做分类
data = pd.read_excel(r'C:\Users\Administrator\Desktop\sales_data.xls',index_col = '序号') data['天气']= data['天气'].map({'坏':0,'好':1}) data['是否周末'] = data['是否周末'].map({'是':1,'否':0}) data['是否有促销'] = data[...
动手实践:实现图片数据增强(Data Augmentation )
     众所周知,数据对于神经网络的训练至关重要。一般来说,原始数据量越大,训练出来的模型精度越高,泛化能力越强。但是,做数据标注费时费力,往往不容易收集太多。利用已有的数据,通过翻转等数据处理,可以制造出更多的图片,进而提高网络的精度和泛化能力。1.从github上下载源代码。git clone https://github.com/aleju/imgaug.git2.制作说明文档cd img...
trick—Data Augmentation -- 基于海康威视经验
海康威视研究院ImageNet2016竞赛经验分享 海康威视经验         数据增强对最后的识别性能和泛化能力都有着非常重要的作用。我们使用下面这些数据增强方法。第一,对颜色的数据增强,包括色彩的饱和度、亮度和对比度等方面,主要从Facebook的代码里改过来的。第二,PCA Jittering,最早是由Alex在他2012年赢得ImageNet竞赛的那篇NIPS中提出来
在TlistItem中用Data属性保存数据的问题
先定义一个结构:rn TBedID =class(TObject)rn publicrn bedid:integer;rn end;rn PBedID = ^TBedID;rn然后在一个过程中:rnvar rn objBedID:TBedID;rnbeginrn while …… dorn beginrn tl := bedview.Items.Add;rn tl.Caption :='…';rn objBedId:=TBedID.Create;rn objBedId.bedid:= bedid;rn tl.Data:=@p_bedid;rn end;rnend;rn在另一函数中访问:rnselected:=PBedID(bedview.Items.Item[bedview.ItemIndex].Data).bedid;rn结果是个随机的整数。rnrn请问,如何解决?rnrn顺便问一下,像第一函数中objBedId申请的堆空间如何释放?
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法