5 python machine-learning deep-learning keras attention-model
我正在研究机器语言翻译问题。我使用的模型是:
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')
])
Run Code Online (Sandbox Code Playgroud)
这里,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层!
这将帮助您从上一个链接
context_vector, attention_weights = Attention(32)(lstm, state_h)
Run Code Online (Sandbox Code Playgroud)
或者
这是使用 Luong 式注意力的方法:
attention = tf.keras.layers.Attention()([query, value])
Run Code Online (Sandbox Code Playgroud)
以及 Bahdanau 式的关注:
attention = tf.keras.layers.AdditiveAttention()([query, value])
Run Code Online (Sandbox Code Playgroud)
改编后的版本:
weights = tf.keras.layers.Attention()([lstm, state_h])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
793 次 |
| 最近记录: |