Получить вероятность конкретного слова в модели Keras LSTM - PullRequest
0 голосов
/ 17 сентября 2018

Я обучил модель w2v и модель keras LSTM поверх нее:

pretrained_weights = w2v_model.wv.syn0
vocab_size, emdedding_size = pretrained_weights.shape

keras_lstm_model = Sequential()
keras_lstm_model.add(Embedding(input_dim = vocab_size, output_dim = emdedding_size, weights = [pretrained_weights]))
keras_lstm_model.add(LSTM(units = emdedding_size))
keras_lstm_model.add(Dense(units = vocab_size))
keras_lstm_model.add(Activation('sigmoid'))
keras_lstm_model.compile(optimizer = 'adam', loss = 'sparse_categorical_crossentropy', metrics = ['mae','acc'])

Теперь у меня есть предложение

"Это мое"

и я хочу получить вероятность для слова

"Шляпа"

.

Я могу это сделать?

1 Ответ

0 голосов
/ 17 сентября 2018

Ваш вывод модели имеет vocab_size нейронов.Если вы позвоните keras_lstm_model.predict, вы получите различные вероятности для каждого слова, чтобы следовать за последовательностью.Вопрос в том, какая вероятность вам нужна?Если вам нужна единица, в которой сумма всех вероятностей в прогнозе равна 1, вам следует заменить свою последнюю функцию активации на softmax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...