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)
```