如标题所示,
官方网站上有警告“警告:当output_projection为None时,注意力向量和变量的大小将与num_decoder_symbols成正比,可能会很大。”
我不知道为什么输出投影会对注意力向量大小产生影响。
事实上,我阅读了有关嵌入注意力大小的源代码。
在我看来,注意力机制是根据单元输出计算的,并且在注意力使用之前没有对单元输出进行投影操作。那么,输出投影如何影响注意力向量的大小?
非常感谢并请求一些解释......
最佳答案
你说得对:“注意力机制是根据单元输出计算的”。但如果没有投影(output_projection 为 None),单元输出必须具有与 num_output_symbols 相同的维度才能进行解码。这是由该行中的 OutputProjectionWrapper 强制执行的。 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/legacy_seq2seq/python/ops/seq2seq.py#L866因此,现在单元输出的维度可能非常大,这使得它不太适合关注。正如您在上面的一行所看到的,只有当 output_projection 为 None 时才会发生这种情况,否则一切正常并且使用投影。
关于machine-learning - 在 tensorflow 嵌入注意力 seq2seq 中,projection_output 如何影响注意力向量大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42871716/