Keras l'attention de la couche au LSTM
Je suis en utilisant keras 1.0.1 j'essaye d'ajouter une attention couche sur le dessus d'un LSTM. C'est ce que j'ai à ce jour, mais il ne fonctionne pas.
input_ = Input(shape=(input_length, input_dim))
lstm = GRU(self.HID_DIM, input_dim=input_dim, input_length = input_length, return_sequences=True)(input_)
att = TimeDistributed(Dense(1)(lstm))
att = Reshape((-1, input_length))(att)
att = Activation(activation="softmax")(att)
att = RepeatVector(self.HID_DIM)(att)
merge = Merge([att, lstm], "mul")
hid = Merge("sum")(merge)
last = Dense(self.HID_DIM, activation="relu")(hid)
Le réseau doit appliquer un LSTM au cours de la séquence d'entrée. Ensuite, chaque état caché de la LSTM doit être entrée dans un entièrement connecté couche, au cours de laquelle un Softmax est appliquée. Le softmax est reproduite pour chaque dimension cachée et multiplié par le LSTM états cachés elementwise. Ensuite, le vecteur résultant devrait être en moyenne.
MODIFIER: Cette compile, mais je ne suis pas sûr si c'est ce que je pense qu'il devrait faire.
input_ = Input(shape=(input_length, input_dim))
lstm = GRU(self.HID_DIM, input_dim=input_dim, input_length = input_length, return_sequences=True)(input_)
att = TimeDistributed(Dense(1))(lstm)
att = Flatten()(att)
att = Activation(activation="softmax")(att)
att = RepeatVector(self.HID_DIM)(att)
att = Permute((2,1))(att)
mer = merge([att, lstm], "mul")
hid = AveragePooling1D(pool_length=input_length)(mer)
hid = Flatten()(hid)
Salut @siamii il y avait du succès avec le réseau d'attention? Actuellement j'essaie la même chose..
Jetez un oeil à cette mise en œuvre de l'Attention sur le haut d'une LSTM: github.com/philipperemy/keras-attention-mechanism Il devrait fonctionner sur votre exemple.
Jetez un oeil à cette mise en œuvre de l'Attention sur le haut d'une LSTM: github.com/philipperemy/keras-attention-mechanism Il devrait fonctionner sur votre exemple.
OriginalL'auteur siamii | 2016-04-23
Vous devez vous connecter pour publier un commentaire.
Ici est une implémentation de l'Attention LSTM avec Keras, et un exemple de son l'instanciation. Je n'ai pas essayé moi-même.
OriginalL'auteur mossaab