2017-05-30 99 views
1

我通過了this tutorial。在最後一塊中,它表示dynamic_rnn函數不適用於計算注意力。但是我不明白的是,我們需要的只是解碼器的隱藏狀態,以便找到編碼器符號可以解決的問題。張量流中tf.nn.dynamic_rnn和tf.nn.raw_rnn有什麼區別?

+1

編碼器的隱藏狀態在注意機制 –

+1

好一個使用。這就像我們在5月份玩的原始RNN一樣。新的關注點,編碼方法等等對嗎? –

回答

0

編碼器 - 解碼器環境中的注意機制意味着解碼器在每個時間步「參加」編碼器的「有用」部分。例如,這被實現爲平均編碼器的輸出並且在給定的時間步將該值(稱爲上下文)饋送到解碼器中。

dynamic_rnn計算所有時間步長的LSTM細胞的輸出並給出最終值。因此,沒有辦法告訴模型,在步驟t的單元狀態不僅應該依賴於前一個單元和輸入的輸出,還應該依賴於附加信息,例如上下文。您可以使用raw_rnn來控制編碼器或解碼器LSTM的每個時間步的計算。

如果我理解正確,在本教程中,作者在每個時間步將地面真值輸入作爲輸入提供給解碼器。但是,這不是通常的做法。通常,您想在時間將t處解碼器的輸出作爲輸入饋送給解碼器。簡而言之,在每個時間步驟對解碼器的輸入是可變的,而在dynamic_rnn中則是預定義的。

請參考更多的技術細節:https://arxiv.org/abs/1409.0473

相關問題