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