深度学习 之 data augmentation

原创 2018年04月15日 00:27:38

深度学习是基于数据驱动的学科,通过data augmentation(数据扩张)可以有效的进行数据扩张并进行一些数据normalized操作. 以此,便于扩大数据集,丰富数据多样性,便于学习到更深度广泛的特征, 避免模型的overfit和underfit.
这里直接调用keras.preprocessing.image中的ImageDataGenerator. 这个函数包含了常用的图像变换和normalization方法.

  • 函数介绍
from keras.preprocessing.image import ImageDataGenerator

? ImageDataGenerator # 查看函数帮助
  • 函数参数列表(带默认值)如下:
    1. featurewise_center=False:
      设置输入特征的均值为0(每一个维度,feature-wise)
      Set input mean to 0 over the dataset, feature-wise.
    2. samplewise_center=False:
      设置每一个样本的均值为0.(样本级别的均值, 也就是该样本所有特征之和的平均为0)
      Set each sample mean to 0.
    3. featurewise_std_normalization=False
      每一个特征维度除以该维度的标准差.
      Divide inputs by std of the dataset, feature-wise.
    4. samplewise_std_normalization=False
      每一个特征(所有维度)整体除以相应的标准差.
      Divide each input by its std.
    5. zca_whitening=False
      采用ZCA白化操作.
      Apply ZCA(Zero-phase Component Analysis) whitening
    6. zca_epsilon=1e-06
      epsilon值
      epsilon for ZCA whitening. Default is 1e-6.
    7. rotation_range=0.0
      随机旋转的最大值.?
      Degree range for random rotations.
    8. width_shift_range=0.0
      水平平移的比例范围(范围的最大值)
      Float (fraction of total width). Range for random horizontal shifts.
    9. height_shift_range=0.0
      纵向平移的比例返回(范围的最大值)
      Float (fraction of total height). Range for random vertical shifts.
    10. brightness_range=None
    11. shear_range=0.0
      裁剪强度范围最大值(逆时针方向角度)
      Shear Intensity (Shear angle in counter-clockwise direction in degrees)
    12. zoom_range=0.0
      随机缩放范围(到底zoom in/out)
      Float or [lower, upper]. Range for random zoom. If a float, [lower, upper] = [1-zoom_range, 1+zoom_range].
    13. channel_shift_range=0.0
      Range for random channel shifts.
    14. fill_mode=’nearest’
      One of {“constant”, “nearest”, “reflect” or “wrap”}. Default is ‘nearest’.
      Points outside the boundaries of the input are filled according to the given mode:
      ‘constant’: kkkkkkkk|abcd|kkkkkkkk (cval=k)
      ‘nearest’: aaaaaaaa|abcd|dddddddd
      ‘reflect’: abcddcba|abcd|dcbaabcd
      ‘wrap’: abcdabcd|abcd|abcdabcd
    15. cval=0.0
      Value used for points outside the boundaries when fill_mode = "constant".
    16. horizontal_flip=False
      Randomly flip inputs horizontally. (难道不是=True, 就一定翻转?), 如果是随机翻转, 则说明,选择该项之后, 在训练过程中随机对图片执行该操作, 而不是一定执行. 如果一定执行,那么训练集的数量就会增加., 应该是随机翻转.
    17. vertical_flip=False
      Randomly flip inputs vertically.
    18. rescale=None
      Defaults to None. If None or 0, no rescaling is applied,otherwise we multiply the data by the value provided (before applying any other transformation).
    19. preprocessing_function=None
      function that will be implied on each input. The function will run after the image is resized and augmented. The function should take one argument: one image (Numpy tensor with rank 3), and should output a Numpy tensor with the same shape.
    20. data_format=None
      One of {“channels_first”, “channels_last”}.
      “channels_last” mode means that the images should have shape (samples, height, width, channels),
      “channels_first” mode means that the images should have shape (samples, channels, height, width).
      It defaults to the image_data_format value found in your
      Keras config file at ~/.keras/keras.json.
      If you never set it, then it will be “channels_last”.
    21. validation_split=0.0
      Fraction of images reserved for validation (strictly between 0 and 1)

深度学习

人工智能工程师直通车第一期

为满足市场需求,培养更多人工智能人才,CSDN学院特别邀请到有十余年教学经验的中科院教授卿来云老师及有丰富工业级实战经验的智亮老师,为大家带来本次课程。 通往人工智能工程师的直通车,已经准备出发了!这波人工智能的热潮,你真的要错过吗?
  • 2017年10月24日 15:37

深度学习中的Data Augmentation和代码实现

深度学习中的Data Augmentation和代码实现本篇博客全部都参考自这里1 原理深度学习中,为了避免出现过拟合(Overfitting),通常我们需要输入充足的数据量.为了得到更加充足的数据,...
  • xg123321123
  • xg123321123
  • 2016-10-21 16:49:33
  • 1997

02-深度学习中的Data Augmentation方法

02-深度学习中的Data Augmentation方法在深度学习中,为了避免出现过拟合(Overfitting),通常我们需要输入充足的数据量。当数据量不够大时候,常常采用以下几种方法: Data ...
  • sinat_25059791
  • sinat_25059791
  • 2017-02-23 09:10:15
  • 1814

深度学习避免过拟合的方法---Data Augmentation

深度学习中的Data Augmentation方法在深度学习中,为了避免出现过拟合(Overfitting),通常我们需要输入充足的数据量。当数据量不够大时候,常常采用以下几种方法:Data Augm...
  • u013714645
  • u013714645
  • 2017-08-28 08:10:48
  • 406

深度学习样本生成data augmentation

在做深度学习图片分类的时候,很多是有些样本不足这个时候我们就会自己生成样本,如opencv对图片旋转,扭曲等等操作。google了一下deep learning data augmentation 发...
  • haluoluo211
  • haluoluo211
  • 2017-08-29 21:12:43
  • 4876

深度学习中的Data Augmentation方法

在深度学习中,当数据量不够大时候,常常采用下面4中方法: 1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augmentat...
  • mwa2016
  • mwa2016
  • 2016-12-22 16:05:29
  • 1094

深度学习: 数据扩充 (Data Augmentation)

Introduction 数据扩充(data augmentation),又名 数据增强。 其本质即: 缺少海量数据时,为了保证模型的有效训练,一分钱掰成两半花。 数据扩充方法包括: ...
  • JNingWei
  • JNingWei
  • 2018-01-31 18:46:38
  • 412

深度学习中的Data Augmentation方法(转)基于keras

在深度学习中,当数据量不够大时候,常常采用下面4中方法: 1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augmentation...
  • lyb3b3b
  • lyb3b3b
  • 2017-05-06 22:03:17
  • 590

Data Augmentation.

今天做深度学习实验,由于是关于医学图像处理的的,所以数据集非常少。因此进行Data Augmentation十分有必要。keras里自带的ImageDataGenerator进行Data Augmen...
  • CSAT_CJ
  • CSAT_CJ
  • 2017-11-06 20:46:14
  • 88

Data Augmentation

之前刘青山院长请了华南理工大学的教授来做报告,他们做的手写字体识别,人脸打分和手势识别的demo的确很不错。 他也坦言说之前的传统方法确实没法和CNN比,deep效果就是好,我曾多次听到他强调他对数据...
  • Dachao_Xu
  • Dachao_Xu
  • 2015-12-07 11:43:30
  • 5423
收藏助手
不良信息举报
您举报文章:深度学习 之 data augmentation
举报原因:
原因补充:

(最多只允许输入30个字)