如何将Keras的ImageDataGenerator的预处理参数与数据扩充参数相除

时间:2019-11-12 22:41:16

标签: machine-learning keras computer-vision keras-2

我将使用Keras的 ImageDataGenerator 类(在 keras / preprocessing / image.py 中)来训练神经网络。我将为训练数据提供一个生成器,为测试数据提供另一个生成器。但是,某些参数似乎适用于图像的预处理,而其他参数则试图扩充数据集。

我希望训练和测试数据都以相同的方式进行预处理,但是我不希望我的测试集被各种图像变换“增强”。因此,如果我相信这一点是正确的,那么以下参数用于预处理,并且可以由两个数据集共享:

    featurewise_center: Boolean.
        Set input mean to 0 over the dataset, feature-wise.
    samplewise_center: Boolean. Set each sample mean to 0.
    featurewise_std_normalization: Boolean.
        Divide inputs by std of the dataset, feature-wise.
    samplewise_std_normalization: Boolean. Divide each input by its std.
    zca_epsilon: epsilon for ZCA whitening. Default is 1e-6.
    zca_whitening: Boolean. Apply ZCA whitening.
    fill_mode: 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
    cval: Float or Int.
        Value used for points outside the boundaries
        when `fill_mode = "constant"`.
    rescale: rescaling factor. Defaults to None.
        If None or 0, no rescaling is applied,
        otherwise we multiply the data by the value provided
        (after applying all other transformations).
    preprocessing_function: 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.
    data_format: Image data format,
        either "channels_first" or "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".
    dtype: Dtype to use for the generated arrays.

这些参数是用于数据扩充的,应应用于训练集:

    rotation_range: Int. Degree range for random rotations.
    width_shift_range: Float, 1-D array-like or int
        - float: fraction of total width, if < 1, or pixels if >= 1.
        - 1-D array-like: random elements from the array.
        - int: integer number of pixels from interval
            `(-width_shift_range, +width_shift_range)`
        - With `width_shift_range=2` possible values
            are integers `[-1, 0, +1]`,
            same as with `width_shift_range=[-1, 0, +1]`,
            while with `width_shift_range=1.0` possible values are floats
            in the interval [-1.0, +1.0).
    height_shift_range: Float, 1-D array-like or int
        - float: fraction of total height, if < 1, or pixels if >= 1.
        - 1-D array-like: random elements from the array.
        - int: integer number of pixels from interval
            `(-height_shift_range, +height_shift_range)`
        - With `height_shift_range=2` possible values
            are integers `[-1, 0, +1]`,
            same as with `height_shift_range=[-1, 0, +1]`,
            while with `height_shift_range=1.0` possible values are floats
            in the interval [-1.0, +1.0).
    brightness_range: Tuple or list of two floats. Range for picking
        a brightness shift value from.
    shear_range: Float. Shear Intensity
        (Shear angle in counter-clockwise direction in degrees)
    zoom_range: Float or [lower, upper]. Range for random zoom.
        If a float, `[lower, upper] = [1-zoom_range, 1+zoom_range]`.
    channel_shift_range: Float. Range for random channel shifts.
    horizontal_flip: Boolean. Randomly flip inputs horizontally.
    vertical_flip: Boolean. Randomly flip inputs vertically.

此外,我不确定验证集中的数据(由ImageDataGenerator类定义)是否(或应该)受提供增强的转换的约束。

0 个答案:

没有答案