相關參數描述:http://keras-cn.readthedocs.io/en/latest/preprocessing/image/
其中validation_split參數(官方上使用方法未描述):設置訓練集與驗證集的比例。
要與flow_from_directory或flow函數配合。在函數中subset參數中設置爲'training' 或者 'validation',生成對應的數據集。python
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])