训练期间如何从模型内的隐藏LSTM序列中获取特定元素

时间:2019-06-17 14:21:00

标签: keras lstm

我有以下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,可能最有价值的信息是在极端情况下编码的,而在中间只是噪声。如何验证这个假设并访问这两个要素?

  • 基督徒

0 个答案:

没有答案