実現したいこと
損失関数を減らす
グラフを安定させる
発生している問題
import keras from keras.models import Sequential from keras.layers import Activation,Dense,Flatten,Dropout from keras.layers import Conv2D,MaxPooling2D from keras.preprocessing.image import ImageDataGenerator import matplotlib.pyplot as plt from keras import layers, models def main(): model = Sequential() model.add(Conv2D(32, (3, 3), input_shape=(64,64,3)))# レイヤー1 model.add(Activation('relu')) model.add(Conv2D(32, (3, 3))) # レイヤー2 model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.5)) model.add(Conv2D(64, (3, 3))) # レイヤー3 model.add(Activation('relu')) model.add(Conv2D(64, (3, 3))) # レイヤー4 model.add(Activation('relu')) model.add(MaxPooling2D(pool_size=(2, 2))) model.add(Dropout(0.5)) model.add(Flatten()) # レイヤー5 model.add(Dense(512)) model.add(Activation('relu')) model.add(Dropout(0.5)) model.add(Dense(2)) # レイヤー6 model.add(Activation('softmax')) model.compile( optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"]) train_datagen=ImageDataGenerator(rescale=1./255) test_datagen=ImageDataGenerator(rescale=1./255) train_generator=train_datagen.flow_from_directory( "data/train", target_size=(64,64), batch_size=10) validation_generator=test_datagen.flow_from_directory( "data/vallidation", target_size=(64,64), batch_size=10) model.fit_generator( train_generator, epochs=100, steps_per_epoch=15, validation_data=validation_generator, validation_steps=15 ) accuracy= model.history.history['accuracy'] val_accuracy = model.history.history['val_accuracy'] loss= model.history.history['loss'] val_loss = model.history.history['val_loss'] epochs = range(len(accuracy)) plt.plot(epochs, accuracy, '-o', label='Training acc') plt.plot(epochs, val_accuracy, '-o', label='Validation acc') plt.title('Training and validation accuracy') plt.legend() plt.show() plt.savefig('a') plt.figure() plt.plot(epochs, loss, '-o', label='Training loss') plt.plot(epochs, val_loss, '-o', label='Validation loss') plt.title('Training and validation loss') plt.show() plt.savefig('b') if __name__== "__main__": main()
試したこと
Dropout関数を変更してみた
epochs数を多くしてみた
どのようにすれば損失関数は小さくなるのでしょうか?
教えていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー