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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM