我剛開始玩TensorFlow,我試圖實現一個非常簡單的RNN。 RNN具有x
作爲輸入,y
作爲輸出,並且由僅包含x
並且其先前輸出作爲輸入的單個層組成。下面是這類事情的圖片我心目中:如何在TensorFlow中的圖形中創建一個簡單的RNN?
的問題是,我無法看透TensorFlow API的任何方式來構造,在它的週期的圖表。每當我定義一個張量時,我必須指定它的輸入是什麼,這意味着我必須已經定義了它的輸入。所以這是一個雞與雞蛋的問題。
我甚至不知道是否有必要定義一個帶有循環的圖(首先計算什麼?我需要定義softmax節點的初始值?)。我玩的想法是使用一個變量來表示先前的輸出,然後手動取值y
,並在每次通過訓練樣本後將其存儲在變量中。但是這樣會很慢,除非有一種方法可以在圖形本身中表示這個過程(?)。
我知道TensorFlow教程顯示了RNN的示例實現,但他們欺騙並將LSTM模塊拉出已經具有循環的庫。總的來說,這些教程很好地幫助你瞭解如何構建某些東西,但是他們可以更好地解釋這種野獸是如何運作的。
那麼,TensorFlow的專家,有沒有辦法構建這個東西?我該怎麼去做呢?
你的變量想法似乎是一種方式去,如果你使用TensorFlow變量/賦值操作不應該慢 –
但我不需要調用'sess.run(y_prev.assign(y))'並運行一次一個樣本?或者你的意思是我應該將這與@Ishamael描述的展開策略結合起來? – Shum