keras图像预处理-ImageDataGenerator
相关参数描述:http://keras-cn.readthedocs.io/en/latest/preprocessing/image/
其中validation_split参数(官方上使用方法未描述):设置训练集与验证集的比例。
要与flow_from_directory或flow函数配合。在函数中subset参数中设置为'training' 或者 'validation',生成对应的数据集。
from keras.models import Sequential from keras.layers import Dense, Dropout, Activation, Flatten from keras.layers import Convolution2D, MaxPooling2D from keras.models import load_model import keras.callbacks as callbacks from keras.preprocessing.image import ImageDataGenerator # 在目录下建立子文件夹,每个子文件夹对应1个类 # 如以0,1,2或a, b, c命名的文件夹 train_dir = 'e:\Python_Project\images\' num_epochs = 1 batch_size = 100 data_gen = ImageDataGenerator(rescale=1. / 255, validation_split=0.1) # classes: 可选参数,为子文件夹的列表,如['dogs','cats']默认为None. # 若未提供,则该类别列表将从directory下的子文件夹名称/结构自动推断。 # 每一个子文件夹都会被认为是一个新的类。(类别的顺序将按照字母表顺序映射到标签值)。 # 通过属性class_indices可获得文件夹名与类的序号的对应字典。 # 本例中使用默认的参数,表示按数字或字母升序,对应类的序号 train_generator = data_gen.flow_from_directory(train_dir, target_size=(64, 64), batch_size=batch_size, class_mode='categorical', subset='training') validation_generator = data_gen.flow_from_directory(train_dir, target_size=(64, 64), batch_size=batch_size, class_mode='categorical', subset='validation') # 建立模型 model = Sequential() # .. # ............... # 训练模型 tensor_board = callbacks.TensorBoard() model.fit_generator(generator=train_generator, epochs=num_epochs, validation_data=validation_generator, callbacks=[tensor_board])