当代码跨越多个Jupyter单元时,Tensorflow LSTM变量范围值



起初,我以为我误解了张量的API。现在,我怀疑我只是误解了jupyter笔记本中的可变范围。

TensorFlow的LSTM教程示例recurrent_network.py如果我将所有代码插入Jupyter Notebook中的单个单元格并运行它,则可以很好地工作。但是,当我将程序分为单独的单元格时,即使按照正确的顺序运行所有内容(首先定义等),我也会收到一个可变范围错误:

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

valueerror:变量rnn/basic_lstm_cell/bernel已经存在, 禁止。您的意思是在Varscope中设置Reuse = true吗?起初 定义为:站点包装 TensorFlow Python framework ops.py",line 1269,in init

其他堆叠式文章解决了在人们重复基本LSTM单元格的情况下,但我不重复使用LSTM单元格,而Recurrent_network中的代码在我的jupyter笔记本上正常工作,只要我保留所有内容,我都可以正常工作。在一个单元格中。

可能会发生什么?

显然,我正在重复使用LSTM单元格,因为我运行了recurrent_network.py,然后我自己的更改版本。重新启动jupyter内核解决了问题,这就是我发现错误的方式。

值得注意的是,这还不足以让会话失效。显然,您只需在同一笔记本中拨打一个以上的basiclstmcell来遇到麻烦。

最新更新