CNNを用いて画像認識を行いたいのですが、過学習が起きてしまっています。
自分なりに調べてドロップアウトも実装したのですが原因が分かりません。
発生している問題・エラーメッセージ
過学習が起きてしまう
該当のソースコード
X = []
Y = []
for picture in list_pictures(r'C:\Users\Blouse'):
img = img_to_array(load_img(picture, target_size=(64,64)))
X.append(img)
Y.append(0)
for picture in list_pictures(r'C:\Users\Top'):
img = img_to_array(load_img(picture, target_size=(64,64)))
X.append(img)
Y.append(1)
for picture in list_pictures(r'C:\Users\Jacket'):
img = img_to_array(load_img(picture, target_size=(64,64)))
X.append(img)
Y.append(2)
for picture in list_pictures(r'C:\Users\Jeans'):
img = img_to_array(load_img(picture, target_size=(64,64)))
X.append(img)
Y.append(3)
for picture in list_pictures(r'C:\Users\Skirt'):
img = img_to_array(load_img(picture, target_size=(64,64)))
X.append(img)
Y.append(4)
X = np.asarray(X)
Y = np.asarray(Y)
X = X.astype('float32')
X = X / 255.0
Y = to_categorical(Y, 5)
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=0.33, random_state=111)
model = Sequential()
model.add(Conv2D(32, (3, 3), padding='same',
input_shape=X_train.shape[1:]))
model.add(Activation('relu'))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), padding='same'))
model.add(Activation('relu'))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(512))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(5))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='SGD',
metrics=['accuracy'])
history = model.fit(X_train, y_train, batch_size=5, epochs=200,
validation_data = (X_test, y_test), verbose = 0)
plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.title('model accuracy')
plt.xlabel('epoch')
plt.ylabel('accuracy')
plt.legend(['accuracy', 'val_accuracy'], loc='lower right')
plt.show()
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー