如何为Keras中的Bahdanau Attention创建定制的循环单元?

时间:2019-06-16 13:16:47

标签: keras

这是通过修改Keras中内置的GRU单元创建的Bahdanau Attention机制的实现:

https://github.com/erelcan/keras_bahdanau

对于解码器中的每个时间步,应该计算上下文向量并将其用于计算该步的输出。为了计算步骤(t)的上下文向量,需要步骤(t-1)的解码器状态和步骤(t)的注释(编码器输出)(请参阅[1]的附录2.2)。因此,我们需要在执行循环步骤时计算上下文向量,这与作品[2],[3]不同(请参阅我在github存储库中共享的详细指南)。

因此,我想知道[2]或[3]中的方法是否与[1]中的方法相同,或者它们是某种近似还是仅仅是另一种方法。

无论是从理论上的正确性还是在实践中的效率方面,我都会对我的实施提出任何反馈意见。另外,任何测试示例都非常受欢迎。

[1]通过联合学习对齐和翻译来进行神经机器翻译

[2] https://towardsdatascience.com/light-on-math-ml-attention-with-keras-dc8dbc1fad39

[3] https://github.com/philipperemy/keras-attention-mechanism

0 个答案:

没有答案