深度学习 之 data augmentation

深度学习是基于数据驱动的学科,通过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)

你可能感兴趣的:(深度学习 之 data augmentation)