Jas*_*hye 5 python keras tensorflow seq2seq
我试图了解如何使用tf.keras.layers.Attention此处显示的内容:
我正在尝试将它与编码器解码器 seq2seq 模型一起使用。下面是我的代码:
encoder_inputs = Input(shape=(max_len_text,))
enc_emb = Embedding(x_voc_size, latent_dim,trainable=True)(encoder_inputs)
encoder_lstm=LSTM(latent_dim, return_state=True, return_sequences=True)
encoder_outputs, state_h, state_c= encoder_lstm(enc_emb)
decoder_inputs = Input(shape=(max_len_summary,))
dec_emb_layer = Embedding(y_voc_size, latent_dim,trainable=True)
dec_emb = dec_emb_layer(decoder_inputs)
decoder_lstm = LSTM(latent_dim, return_sequences=True, return_state=True)
decoder_outputs,decoder_fwd_state, decoder_back_state = decoder_lstm(dec_emb,initial_state=[state_h, state_c])
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何在这个模型中使用 keras 中给定的注意力层?我无法理解他们的文件。
如果你使用 RNN,我不建议使用上面的类。
在分析 tf.keras.layers.Attention Github 代码以更好地理解您的难题时,我遇到的第一行是 - “此类适用于密集或 CNN 网络,而不适合 RNN 网络”
我建议您编写自己的 seq to seq 模型,这可以用不到十几行代码来完成。例如:https: //www.tensorflow.org/tutorials/text/nmt_with_attention
要编写自己的自定义注意层(根据您是否喜欢 Bahdanau、Luong、Raffel、Yang 等),也许这篇概述基本要素的文章可能会有所帮助:在 Keras 中使用自定义注意层
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |