天天看点

Keras之ImageDataGenerator 类图像预处理

图像预处理

[source]

ImageDataGenerator 类

keras.preprocessing.image.ImageDataGenerator(featurewise_center=False,  
                                             samplewise_center=False, 
                                             featurewise_std_normalization=False, 
                                             samplewise_std_normalization=False, 
                                             zca_whitening=False, 
                                             zca_epsilon=1e-06, 
                                             rotation_range=0, 
                                             width_shift_range=0.0, 
                                             height_shift_range=0.0, 
                                             brightness_range=None, 
                                             shear_range=0.0, 
                                             zoom_range=0.0, 
                                             channel_shift_range=0.0, 
                                             fill_mode='nearest', 
                                             cval=0.0, 
                                             horizontal_flip=False, 
                                             vertical_flip=False, 
                                             rescale=None, 
                                             preprocessing_function=None, 
                                             data_format=None, 
                                             validation_split=0.0, 
                                             dtype=None)
           

通过实时数据增强生成张量图像数据批次。数据将不断循环(按批次)。

参数

  • featurewise_center: 布尔值。将输入数据的均值设置为 0,逐特征进行。
  • samplewise_center: 布尔值。将每个样本的均值设置为 0。
  • featurewise_std_normalization: Boolean. 布尔值。将输入除以数据标准差,逐特征进行。
  • samplewise_std_normalization: 布尔值。将每个输入除以其标准差。
  • zca_epsilon: ZCA 白化的 epsilon 值,默认为 1e-6。
  • zca_whitening: 布尔值。是否应用 ZCA 白化。
  • rotation_range: 整数。随机旋转的度数范围。
  • width_shift_range: 浮点数、一维数组或整数
    • float: 如果 <1,则是除以总宽度的值,或者如果 >=1,则为像素值。
    • 1-D 数组: 数组中的随机元素。
    • int: 来自间隔

      (-width_shift_range, +width_shift_range)

      之间的整数个像素。
    • width_shift_range=2

      时,可能值是整数

      [-1, 0, +1]

      ,与

      width_shift_range=[-1, 0, +1]

      相同;而

      width_shift_range=1.0

      时,可能值是

      [-1.0, +1.0)

      之间的浮点数。
  • height_shift_range: 浮点数、一维数组或整数
    • float: 如果 <1,则是除以总宽度的值,或者如果 >=1,则为像素值。
    • 1-D array-like: 数组中的随机元素。
    • int: 来自间隔

      (-height_shift_range, +height_shift_range)

      之间的整数个像素。
    • height_shift_range=2

      时,可能值是整数

      [-1, 0, +1]

      ,与

      height_shift_range=[-1, 0, +1]

      相同;而

      height_shift_range=1.0

      时,可能值是

      [-1.0, +1.0)

      之间的浮点数。
  • shear_range: 浮点数。剪切强度(以弧度逆时针方向剪切角度)。
  • zoom_range: 浮点数 或

    [lower, upper]

    。随机缩放范围。如果是浮点数,

    [lower, upper] = [1-zoom_range, 1+zoom_range]

  • channel_shift_range: 浮点数。随机通道转换的范围。
  • fill_mode: {"constant", "nearest", "reflect" or "wrap"} 之一。默认为 'nearest'。输入边界以外的点根据给定的模式填充:
    • 'constant': kkkkkkkk|abcd|kkkkkkkk (cval=k)
    • 'nearest': aaaaaaaa|abcd|dddddddd
    • 'reflect': abcddcba|abcd|dcbaabcd
    • 'wrap': abcdabcd|abcd|abcdabcd
  • cval: 浮点数或整数。用于边界之外的点的值,当

    fill_mode = "constant"

    时。
  • horizontal_flip: 布尔值。随机水平翻转。
  • vertical_flip: 布尔值。随机垂直翻转。
  • rescale: 重缩放因子。默认为 None。如果是 None 或 0,不进行缩放,否则将数据乘以所提供的值(在应用任何其他转换之前)。
  • preprocessing_function: 应用于每个输入的函数。这个函数会在任何其他改变之前运行。这个函数需要一个参数:一张图像(秩为 3 的 Numpy 张量),并且应该输出一个同尺寸的 Numpy 张量。
  • data_format: 图像数据格式,{"channels_first", "channels_last"} 之一。"channels_last" 模式表示图像输入尺寸应该为

    (samples, height, width, channels)

    ,"channels_first" 模式表示输入尺寸应该为

    (samples, channels, height, width)

    。默认为 在 Keras 配置文件

    ~/.keras/keras.json

    中的

    image_data_format

    值。如果你从未设置它,那它就是 "channels_last"。
  • validation_split: 浮点数。Float. 保留用于验证的图像的比例(严格在0和1之间)。
  • dtype: 生成数组使用的数据类型。