Python 对于tensorflow 1.8,似乎我没有';不必编写代码来重用RNNCell中的变量

Python 对于tensorflow 1.8,似乎我没有';不必编写代码来重用RNNCell中的变量,python,tensorflow,recurrent-neural-network,Python,Tensorflow,Recurrent Neural Network,我遵循了语言建模教程:并阅读了相应的代码: 我在第237行发现作者的代码如下: 输出=[] 使用tf.variable_scope(“RNN”): 对于范围内的时间步长(self.num\u步长): 如果时间步长>0:tf.get_variable_scope().reuse_variables() (单元格输出,状态)=单元格(输入[:,时间步长,:],状态) 输出。追加(单元格输出) output=tf.reforme(tf.concat(outputs,1),[-1,config.hidd

我遵循了语言建模教程:并阅读了相应的代码:

我在第237行发现作者的代码如下:

输出=[]
使用tf.variable_scope(“RNN”):
对于范围内的时间步长(self.num\u步长):
如果时间步长>0:tf.get_variable_scope().reuse_variables()
(单元格输出,状态)=单元格(输入[:,时间步长,:],状态)
输出。追加(单元格输出)
output=tf.reforme(tf.concat(outputs,1),[-1,config.hidden\u size])
返回输出,状态
我知道,
RNNCell
(或任何其他单元格)中的变量是在调用方法
\uuuu call\uuuuu
时创建的,并且在第一个时间步骤后应共享这些变量。但在我的实验中,我删除了这一行:

如果时间步长>0:tf.get\u variable\u scope().reuse\u variables()
并打印
tf.所有变量()

似乎我不需要编写代码来重用变量,我错了吗

(我也在tensorflow r0.12(在:)中做了这个实验,如果我删除这一行,它将产生一个

ValueError:变量模型/RNN/MultiRNNCell/Cell0/BasicLSTMCell/Linear/Matrix 已存在,不允许。)

此外,如果我在同一可变范围内创建多个
RNNCell
对象,我认为它们共享相同的可变范围,但实际上每个对象都创建自己的变量。我真的很困惑