keras

ImageDataGenerator

keras.preprocessing.image.ImageDataGenerator(featurewise_center=True,
    samplewise_center=False,
    featurewise_std_normalization=True,
    samplewise_std_normalization=False,
    zca_whitening=False,
    rotation_range=0.,
    width_shift_range=0.,
    height_shift_range=0.,
    horizontal_flip=False,
    vertical_flip=False)

Generate batches of tensor image data with real-time data augmentation.

  • Arguments:

    • featurewise_center: Boolean. Set input mean to 0 over the dataset.
    • samplewise_center: Boolean. Set each sample mean to 0.
    • featurewise_std_normalization: Boolean. Divide inputs by std of the dataset.
    • samplewise_std_normalization: Boolean. Divide each input by its std.
    • zca_whitening: Boolean. Apply ZCA whitening.
    • rotation_range: Int. Degree range for random rotations.
    • width_shift_range: Float (fraction of total width). Range for random horizontal shifts.
    • height_shift_range: Float (fraction of total height). Range for random vertical shifts.
    • horizontal_flip: Boolean. Randomly flip inputs horizontally.
    • vertical_flip: Boolean. Randomly flip inputs vertically.
  • Methods:

    • fit(X): Required if featurewise_center or featurewise_std_normalization or zca_whitening. Compute necessary quantities on some sample data.
      • Arguments:
        • X: sample data.
        • augment: Boolean (default: False). Whether to fit on randomly augmented samples.
        • rounds: int (default: 1). If augment, how many augmentation passes over the data to use.
    • flow(X, y):
      • Arguments:
        • X: data.
        • y: labels.
        • batch_size: int (default: 32).
        • shuffle: boolean (defaut: False).
        • save_to_dir: None or str. This allows you to optimally specify a directory to which to save the augmented pictures being generated (useful for visualizing what you are doing).
        • save_prefix: str. Prefix to use for filenames of saved pictures.
        • save_format: one of "png", jpeg".
  • Example: ```python (X_train, y_train), (X_test, y_test) = cifar10.load_data(test_split=0.1) Y_train = np_utils.to_categorical(y_train, nb_classes) Y_test = np_utils.to_categorical(y_test, nb_classes)

datagen = ImageDataGenerator( featurewise_center=True, featurewise_std_normalization=True, rotation_range=20, width_shift_range=0.2, height_shift_range=0.2, horizontal_flip=True)

compute quantities required for featurewise normalization

(std, mean, and principal components if ZCA whitening is applied)

datagen.fit(X_train)

for e in range(nb_epoch): print 'Epoch', e

# batch train with realtime data augmentation
for X_batch, Y_batch in datagen.flow(X_train, Y_train):
    loss = model.train(X_batch, Y_batch)

```