起初我以为我误解了Tensorflow API。现在我怀疑我只是误解了Jupyter笔记本中如何管理变量范围。
如果我将所有代码插入jupyter笔记本中的单个单元格并运行它,Tensorflow的LSTM教程示例recurrent_network.py可以很好地工作。但是当我将程序划分为单独的单元格时,即使以正确的顺序运行所有内容(首先是定义等),我也会得到一个变量范围错误:
15 # Get lstm cell output
---> 16 outputs, states = rnn.static_rnn(lstm_cell, x, dtype=tf.float32)
ValueError:变量rnn / basic_lstm_cell / kernel已存在, 不允许。你的意思是在VarScope中设置reuse = True吗?本来 定义于:site-packages \ tensorflow \ python \ framework \ ops.py",line 1269,在 init
中
其他StackOverflow文章解决了人们重复使用基本LSTM单元格时出现此错误的问题,但是我没有重复使用LSTM单元格,而且我的jupyter笔记本中的代码在我的jupyter笔记本中运行正常在一个牢房里。
可能会发生什么?
答案 0 :(得分:0)
显然,我正在重用LSTM单元格,因为我运行了recurrent_network.py,然后运行了我自己的更改版本。重新启动jupyter内核修复了问题,这就是我发现错误的方法。
值得注意的是会议失败是不够的。显然,只需在同一笔记本中对BasicLSTMCell进行多次调用就会遇到麻烦。