在Keras中實現圖像分類任務通常需要遵循以下步驟:
準備數據集:首先需要準備包含圖像和對應標簽的數據集。可以使用Keras中的ImageDataGenerator類來加載和處理圖像數據。
構建模型:使用Keras的Sequential模型或者函數式API構建一個卷積神經網絡模型。可以通過添加卷積層、池化層、全連接層等來構建模型。
編譯模型:使用compile()方法來編譯模型,需要指定損失函數、優化器和評估指標。
訓練模型:使用fit()方法來訓練模型,需要傳入訓練集的特征和標簽,以及批量大小和訓練輪數等參數。
評估模型:使用evaluate()方法來評估模型在測試集上的性能,可以得到準確率等評估指標。
預測結果:使用predict()方法來對新數據進行預測,得到模型的輸出結果。
下面是一個簡單的示例代碼:
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
from keras.optimizers import Adam
from keras.preprocessing.image import ImageDataGenerator
# 構建模型
model = Sequential()
model.add(Conv2D(32, (3, 3), activation='relu', input_shape=(64, 64, 3)))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
# 編譯模型
model.compile(optimizer=Adam(), loss='binary_crossentropy', metrics=['accuracy'])
# 準備數據集
train_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory('train/', target_size=(64, 64), batch_size=32, class_mode='binary')
test_datagen = ImageDataGenerator(rescale=1./255)
test_generator = test_datagen.flow_from_directory('test/', target_size=(64, 64), batch_size=32, class_mode='binary')
# 訓練模型
model.fit(train_generator, epochs=10)
# 評估模型
loss, accuracy = model.evaluate(test_generator)
print('Test accuracy:', accuracy)
# 預測結果
predictions = model.predict(test_generator)