У меня есть блок строк с некоторым текстом, и для каждой строки я хочу предсказать следующее слово (word_0 -> word_1, чем по word_0 и word_1 -> word_2 и т. Д. Для каждой строки).Отличный учебник и код здесь: Предсказать следующее слово Исходный код
Но, по-моему, потери не уменьшаются:
....
Epoch 42/50
2668/2668 [==============] - 1777s 666ms/step - loss: 4.6435 - acc: 0.1361
Epoch 43/50
2668/2668 [==============] - 1791s 671ms/step - loss: 4.6429 - acc: 0.1361
Epoch 44/50
2668/2668 [==============] - 1773s 665ms/step - loss: 4.6431 - acc: 0.1361
Epoch 45/50
2668/2668 [==============] - 1770s 664ms/step - loss: 4.6417 - acc: 0.1361
Epoch 46/50
2668/2668 [==============] - 1774s 665ms/step - loss: 4.6436 - acc: 0.1361
....
МойНастройка LSTM NN:
nn_model = Sequential()
nn_model.add(Embedding(input_dim=vocab_size, output_dim=embedding_size,
weights=[pretrained_weights]))
nn_model.add(LSTM(units=embedding_size, return_sequences=True))
nn_model.add(LSTM(units=embedding_size))
nn_model.add(Dense(units=vocab_size))
nn_model.add(Activation('softmax'))
nn_model.compile(optimizer='adam', loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
, где:
pretrained_weights = model.wv.syn0 (model is Word2Vec model)
vocab_size, embedding_size = pretrained_weights.shape
Я пытался изменить размер batch_s (128, 64, 20, 10);пытался добавить любые слои LSTM, но все не помогает мне.Что не так и как я могу решить эту проблему?