0
〜10,000の画像でコヴネットをトレーニングしていて、オプティマイザをopt = SGD()
からopt = 'adam'
に切り替えると、精度が大幅に低下し、その他のパラメータはすべて同じになります。 SGD()では、約80%の精度(各エポック後に徐々に増加)に達します。 Adamを使用すると、私はすべての時代の検証精度が22.25%に止まっています。ニューラルネットオプティマイザがSGDからAdamに変わると、精度が大幅に低下するのはなぜですか?
これはおそらく原因がわかります。
パラメータ
dropout_prob = 0.2
activation_function = 'relu'
loss_function = 'categorical_crossentropy'
batch_size = 32
epoch_count = 20
num_classes = 3
モデル
model = Sequential()
model.add(Conv2D(filters=16, kernel_size=(3, 3), input_shape=inp_shape))
model.add(Conv2D(filters=32, kernel_size=(3, 3)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(rate=dropout_prob))
model.add(Flatten())
model.add(Dense(128, activation=activation_function))
model.add(Dropout(rate=dropout_prob))
model.add(Dense(64, activation=activation_function))
model.add(Dropout(rate=dropout_prob))
model.add(Dense(32, activation=activation_function))
model.add(Dense(num_classes, activation='softmax'))
model.summary()
model.compile(loss=loss_function, optimizer=opt, metrics=['accuracy'])
history = model.fit(x_train, y_train_cat, batch_size=batch_size, epochs=epoch_count,
verbose=verbose_level,
validation_data=(x_test, y_test_cat))
'opt'とは何ですか? – Cristy
私は珍しいです、私の答えはあなたの質問を解決しましたか? – yuval