Точность застряла в одной точке - PullRequest
0 голосов
/ 07 августа 2020

Я обучаю модель классификации предложений и во время обучения наблюдаю, что моя модель дает одинаковую точность для каждой эпохи. Похоже, он застрял на локальных минимумах. Я изменил оптимизаторы на sgd, rmsprop, adam, но ничего не работает.

Мой код модели:

model = Sequential()
model.add(Embedding(max_words, 768, input_length=max_len, weights=[embeddings]))
model.add(BatchNormalization())
model.add(Activation('tanh'))
model.add(SpatialDropout1D(0.5))
model.add(Conv1D(16, kernel_size=3, activation='relu'))
model.add(Bidirectional(LSTM(4)))
model.add(BatchNormalization())
model.add(Activation('tanh'))
model.add(Dropout(0.8))
model.add(Dense(2, activation='softmax'))
model.summary()

И код компиляции:

from keras.optimizers import SGD
opt = SGD(lr=0.01)
model.compile(loss='sparse_categorical_crossentropy', metrics=['accuracy'], optimizer = opt)

Это этап обучения

Epoch 1/10
1854/1854 [==============================] - 83s 45ms/step - loss: 0.6396 - accuracy: 0.6596 - val_loss: 0.6640 - val_accuracy: 0.6226
Epoch 2/10
1854/1854 [==============================] - 82s 44ms/step - loss: 0.6419 - accuracy: 0.6518 - val_loss: 0.6405 - val_accuracy: 0.6226
Epoch 3/10
1854/1854 [==============================] - 82s 44ms/step - loss: 0.6377 - accuracy: 0.6481 - val_loss: 0.6463 - val_accuracy: 0.6226
Epoch 4/10
1854/1854 [==============================] - 83s 45ms/step - loss: 0.6389 - accuracy: 0.6514 - val_loss: 0.6322 - val_accuracy: 0.6226
Epoch 5/10
1854/1854 [==============================] - 83s 45ms/step - loss: 0.6350 - accuracy: 0.6538 - val_loss: 0.6267 - val_accuracy: 0.6226

1 Ответ

0 голосов
/ 07 августа 2020

Вам необходимо изменить

metrics=['accuracy']

на

metrics=' ['SparseCategoricalAccuracy']

при использовании sparse_categorical_crossentropy

...