2017-09-22 89 views
0

起初我以爲我誤解了關於Tensorflow API的一些東西。現在我懷疑我只是誤解了如何在Jupyter筆記本中管理變量範圍。當代碼跨越多個Jupyter單元時,Tensorflow LSTM可變範圍值錯誤

Tensorflow的LSTM教程示例recurrent_network.py如果將所有代碼都插入jupyter筆記本中的單個單元並運行,它的工作原理非常漂亮。但是,當我瓜分程序爲獨立的單元,以正確的順序(先定義等)運行一切,即使,我得到一個變量的作用域錯誤:

 15  # Get lstm cell output 
---> 16  outputs, states = rnn.static_rnn(lstm_cell, x, dtype=tf.float32) 

ValueError: Variable rnn/basic_lstm_cell/kernel already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally defined at: site-packages\tensorflow\python\framework\ops.py", line 1269, in init

其他StackOverflow的文章地址發生在人們重新使用基本LSTM單元的情況下出現這種錯誤,但我不重複使用LSTM單元,再次,recurrent_network.py中的代碼在我的jupyter筆記本中工作正常,前提是我將它全部保留在一個單元中。

可能會發生什麼?

+0

你能展示你如何將它分解成單元格嗎? – Aaron

回答

0

顯然,我正在重新使用LSTM單元,因爲我運行了recurrent_network.py,然後運行了我自己的修改過的版本。重新啓動jupyter內核解決了這個問題,這就是我發現我的錯誤的方式。

值得注意的是,這是不夠的會議失敗。顯然,只需在同一個筆記本中多次調用BasicLSTMCell,就會遇到麻煩。

相關問題