Кодер возвращает одинаковые состояния для каждого входа Keras seq2seq - PullRequest
0 голосов
/ 04 июня 2018

Я использую архитектуру Encoder Decoder seq2seq в Keras, я передаю один горячий массив формы (num_samples, max_sentence_length, max_words) для обучения и использую принудительное использование учителя.

#Encoder
latent_dim = 256
encoder_inputs = Input(shape=(None, max_words))
encoder = LSTM(latent_dim, return_state = True)
encoder_outputs, state_h, state_c = encoder(encoder_inputs)
encoder_states = [state_h, state_c]
#Decoder
decoder_inputs = Input(shape=(None, max_words))
decoder_lstm = LSTM(latent_dim, return_state = True, return_sequences = 
True)
decoder_outputs, _, _ = decoder_lstm(decoder_inputs, initial_state= 
encoder_states)
decoder_dense = Dense(max_words, activation = 'softmax')
decoder_outputs = decoder_dense(decoder_outputs)

ДляМодель логического вывода:

# Inference model
encoder_model = Model(encoder_inputs, encoder_states)

decoder_state_input_h = Input(shape=(latent_dim,))
decoder_state_input_c = Input(shape=(latent_dim,))
decoder_states_inputs = [decoder_state_input_h, decoder_state_input_c]
decoder_outputs, state_h, state_c = decoder_lstm(
    decoder_inputs, initial_state=decoder_states_inputs)
decoder_states = [state_h, state_c]
decoder_outputs = decoder_dense(decoder_outputs)
decoder_model = Model(
    [decoder_inputs] + decoder_states_inputs,
    [decoder_outputs] + decoder_states)

Я пытался распечатать состояния encoder_model, но он всегда возвращает одинаковые состояния для любого входа.Любая помощь будет оценена!

1 Ответ

0 голосов
/ 09 октября 2018

Это в значительной степени просто из примера с Keras, верно?

https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html

Вы тренировали модель?Все, что вы опубликовали, такое же, как в документации Keras, так что я не думаю, что это может быть проблемой.

Вот пример, который работает, который также основан на документации Keras и выглядит довольно похожек тому, что у тебя есть.Может быть, попробуйте пройти через это и посмотреть, где вы отличаетесь?

https://github.com/JEddy92/TimeSeries_Seq2Seq/blob/master/notebooks/TS_Seq2Seq_Intro.ipynb

...