2017-04-14 5 views
2

私はエンティティ関係抽出作業を行うためにケラを使用しようとしていました。kerasを使用してlstmレイヤーで特定のタイムステップの出力を取得するにはどうすればよいですか?

私のモデルはしかし、関係が文の中で、特定のエンティティに関連しているとタスクを分類IMDBとは異なり、中にいくつかの関係があるかもしれませんkeras imdb_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')) 

のコード例のように見えます一文。ですから、私はBiLSTMレイヤーで特定のエンティティワードを一度出力してから連結したいと考えています。

たとえば、「バグダッドでは、カメラマンは、 アメリカの戦車がパレスチナホテルに発砲したときに死亡した」という文があります。この文にはいくつかの関係があります。だから私は "カメラマン"と "タンク"の関係を取得したい場合、私はbiLSTM層で "カメラマン"と "タンク"の出力を取得し、それらをMLPに送信する必要があります。だから、私はbiLSTM層で "カメラマン"と "タンク"の出力を得るために何をすべきですか?私は層の出力属性を試しましたが、実行不可能なようです。

混乱するかもしれません。簡潔にするために、lstm層の特定のタイムステップの出力を取得する方法は?

ご意見をお寄せください。どうもありがとうございました!

答えて

0

return_sequences = Trueパラメータは、すべてのタイムステップの出力を取得できます。次に、必要な特定のステップの出力を抽出するカスタムレイヤーを作成する必要があります。 AFAIKには、ケラから直接達成する方法はありません。しかし、このようなカスタムレイヤーを書くのは難しいことではありません。

関連する問題