from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
datagen = ImageDataGenerator(
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest')
img = load_img('data/train/cats/cat.0.jpg') # this is a PIL image
x = img_to_array(img) # this is a Numpy array with shape (3, 150, 150)
x = x.reshape((1,) + x.shape) # this is a Numpy array with shape (1, 3, 150, 150)
I don't know why we reshape and make its shape to (1, 3, 150, 150) as in line X = x.reshape((1,) + x.shape)
and what 1 means here and what is the benefit of that.
This example is from https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html