如何使用keras获得lstm层中特定时间步长的输出?

如何使用keras获得lstm层中特定时间步长的输出?,keras,lstm,Keras,Lstm,我试图使用keras来完成实体关系提取任务 我的模型看起来像keras的示例代码imdb\u bidirectional\lstm.py model = Sequential() model.add(Embedding(max_features, 128, input_length=maxlen)) model.add(Bidirectional(LSTM(64))) model.add(Dropout(0.5)) model.add(Dense(1, activation='sigmoid')

我试图使用keras来完成实体关系提取任务

我的模型看起来像keras的示例代码imdb\u bidirectional\lstm.py

model = Sequential()
model.add(Embedding(max_features, 128, input_length=maxlen))
model.add(Bidirectional(LSTM(64)))
model.add(Dropout(0.5))
model.add(Dense(1, activation='sigmoid'))
然而,与imdb分类任务不同的是,关系与句子中的特定实体相关,一个句子中可能有多个关系。所以我想在BiLSTM层中获得一次特定实体字的输出,然后将它们连接起来

例如,有一句话“在巴格达,一名摄影师死于 美国坦克向巴勒斯坦旅馆开火,“这句话有几个关系。因此,如果我想得到“cameraman”和“tank”之间的关系,我需要得到biLSTM层中“cameraman”和“tank”的输出,并将它们发送到MLP中。那么,我应该怎么做才能得到biLSTM层中“cameraman”和“tank”的输出呢?我尝试了图层的输出属性,但似乎不可行

这听起来可能令人困惑。简而言之,如何在lstm层中获得特定时间步长的输出


如有任何建议,将不胜感激。多谢各位

return_sequences=True参数可以获得所有时间步的输出。然后,您需要编写一个自定义层来提取所需某些步骤的输出。最后,keras没有直接的方法来实现这一点。不过,编写这样一个自定义层应该不会太难