Как я могу добавить tf.keras.layers.AdditiveAttention в мою модель?

Я работаю над проблемой машинного перевода. Я использую следующую модель:

    Model = Sequential([
          Embedding(english_vocab_size, 256, input_length=english_max_len, mask_zero=True),
          LSTM(256, activation='relu'),
          RepeatVector(german_max_len),
          LSTM(256, activation='relu', return_sequences=True),
          Dense(german_vocab_size, activation='softmax')
    ])

Здесь english_vocab_size и english_max_len - общее количество английских слов в английском словаре и количество слов в каждом английском предложении соответственно. То же самое с german_vocab_size и german_max_len.

Теперь, как я могу добавить слой tf.keras.layers.AdditiveAttention в эту модель?

Изменить - Я много пытался найти хорошие руководства по реализации слоя tf.keras.layers.AdditiveAttention в задаче nlp, но не нашел ни одного. Итак, я думаю, что если бы кто-нибудь мог объяснить, как я могу поместить слой tf.keras.layers.AdditiveAttention в эту модель, этот человек будет первым, кто даст очень четкое объяснение того, как использовать tf.keras.layers.AdditiveAttention, поскольку тогда это будет очень четкая реализация того, как использовать tf.keras.layers.AdditiveAttention слой!


person Community    schedule 11.10.2020    source источник
comment
У меня нет технического образования в этой области, поэтому я не могу вам помочь. Поэтому позвольте мне отослать вас к этим описаниям того, что вы можете сделать, чтобы улучшить свой вопрос и сделать его более доступным для ответа. Как задать вопрос и codeblog.jonskeet.uk/2012/11/24/ и codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question и stackoverflow.com/help/no-one-answers Я знаю, что он общий, но, пожалуйста, примите его как конструктивный совет, для которого он предназначен быть. Удачи тебе с наградой. Это хороший способ привлечь внимание.   -  person Yunnosch    schedule 18.10.2020


Ответы (1)


В этом вам поможет предыдущая ссылка

Как построить модель внимания с помощью keras?

context_vector, attention_weights = Attention(32)(lstm, state_h)

or

Вот как использовать внимание в стиле Луонг:

attention = tf.keras.layers.Attention()([query, value])

И внимание в стиле Бахданау:

attention = tf.keras.layers.AdditiveAttention()([query, value])

Адаптированная версия:

weights = tf.keras.layers.Attention()([lstm, state_h])
person ML85    schedule 21.10.2020