2017-03-18 48 views
0

正如標題,怎樣的projection_output影響tensorflow注意矢量大小嵌入關注seq2seq

沒有在官方網站警告說:「警告:當output_projection是無,注意向量和變量的大小將與num_decoder_symbols成比例,可以很大。「

我不知道爲什麼輸出投影可能會影響注意力矢量大小。

事實上,我讀了關於嵌入注意力大小的源代碼。

在我看來,注意機制是根據單元格輸出計算出來的,在注意使用之前沒有投影操作單元輸出。那麼,輸出投影如何影響注意矢量的大小呢?

非常感謝,並乞求一些解釋...

回答

1

你有權說:「注意機制是基於電池的輸出來計算」。但是,如果沒有投影(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的情況下,否則一切正常,並且使用投影。

+0

是的,我看到輸出投影可能會影響輸出尺寸。但是當注意狀態生成時,您可以看到這一行,[link](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/legacy_seq2seq/python/ops/seq2seq.py#L859)它在投影操作之前使用cell.output大小。因此,在我看來,注意狀態的大小不會因輸出投影而改變。我不確定我是否正確。 –