2017-01-09 175 views
0

我寫了一首歌TensorFlow基於這個視頻,我看了一個簡單的循環網絡的恆定值:通過使網絡產生https://youtu.be/vq2nnJ4g6N0?t=8546NLP迴歸神經網絡總給人

在視頻RNN被證明產生莎士比亞戲劇單詞一次一個字。網絡的輸出在下一次迭代中反饋回輸入。

這裏是我的網絡圖:

+--------------------------------+ 
|        | 
| In: H E L L O W O R L <--+-----+ 
|   | | | | | | | | | | |  | 
|   V V V V V V V V V V |  | Recursive feed 
|   +-----------------+ |  | 
+-> Hin ->| RNN + Softmax |-> Hout | 
      +-----------------+   | 
      | | | | | | | | | |   | 
    Out: V V V V V V V V V V   | 
      E L L O W O R L D ---------+ 
          ^Character predicted by the network 

我希望在網絡上至少做正確的複製位。不幸的是我的網絡總是輸出32個字符(ASCII空格字符)。我不知道是什麼原因引起的問題...

請幫我讓我的網絡製作詩歌!

我的代碼是在這裏: https://github.com/calebh/namepoet/blob/03f112ced94c3319055fbcc74a2acdb4a9b0d41c/main.py

語料庫可以通過Lorem存有幾段更換,以加快培訓(網絡具有相同的不良行爲)。

+0

不是一個合適的問題就這樣問,但好的圖順便說一句。 – alvas

+0

您輸入到RNN是一個熱點編碼矢量嗎?通常輸入是一個嵌入的字符,而不是一個單獨的向量。 – Aaron

回答

0

聽起來像它可能會使濾波器飽和(如果激活函數是在光譜的最遠端,並因此具有非常低的梯度並且卡住)。你可能想嘗試用不同的方法初始化你的神經元參數。

另外,您是否有使用GRU的特殊原因?根據我的經驗,如果效率稍差,LSTM設備更可靠。

0

我想嘗試運行的代碼更長的時間?你有batch_size = 10,sequence_size = 30和20次迭代,你的網絡本質上總共有6000個字符,可能學習率爲0.001,這遠遠不夠你的初始化。

因此,我會嘗試將學習率提高到非常高的值(例如1或100),並查看它是否開始輸出不同的字母以確認您的實現是否正確。以這樣高的學習率訓練的網絡通常不會準確。