Как получить указанные элементы из скрытой последовательности LSTM внутри модели во время обучения - PullRequest
1 голос
/ 17 июня 2019

У меня есть следующая модель LSTM

 words = Input(shape=(MAX_LEN,))
 x = Embedding(*embedding_matrix.shape, weights=[embedding_matrix], trainable=False)(words)
 x = Bidirectional(CuDNNLSTM(LSTM_UNITS, return_sequences=True),merge_mode='ave')(x)
 x = Bidirectional(CuDNNLSTM(LSTM_UNITS, return_sequences=True),merge_mode='ave')(x)

Я хочу объединить первый и последний элементы из последовательности, возвращаемой последним слоем, а затем передать их в плотный слой. Я знаю, что у меня есть несколько вариантов агрегирования возвращаемой последовательности:

Using GlobalMaxPooling1D()(x) or GlobalAveragePooling1D()(x)
Using a TimeDistributed layer to apply a dense layer to each element of the sequence

Но, поскольку это двунаправленный LSTM, возможно, наиболее ценная информация закодирована в крайних значениях, а в середине - просто шум. Как я могу проверить эту гипотезу и получить доступ к этим двум элементам?

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