Как использовать слой внимания keras поверх LSTM / GRU? - PullRequest
2 голосов
/ 19 января 2020

Я хотел бы реализовать архитектуру кодер-декодер на основе LSTM или GRU с уровнем внимания. Я видел, что у Keras есть слой для этого tensorflow.keras.layers.Attention, и я хотел бы использовать его (все остальные вопросы и ресурсы, кажется, реализуют его сами или используют сторонние библиотеки). Кроме того, я не использую сеть для преобразования последовательности в последовательность, а для двоичной классификации, поэтому приведенный в документации пример меня немного смущает.

Я представляю себе такую ​​модель.

import tensorflow as tf

x = tf.keras.Input((100, 50))

# encoder
hidden_states = tf.keras.layers.GRU(32, return_sequences=True)(x)

# decoder + attention
? = tf.keras.layers.Attention()([?, ?])
z = tf.keras.layers.GRU(32)(?)

# classification
z = tf.keras.layers.Dense(1, activation='sigmoid')(z)

model = tf.keras.Model(inputs=x, outputs=z)

Декодер и часть внимания этой сети мне неясны. Я знаю, что мне нужно создать контекстный вектор из скрытых состояний кодера и текущего скрытого состояния декодеров.

Как бы я реализовал декодер и часть внимания этой сети?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...