Tensorflow变量在rnn模块

时间:2016-07-09 20:54:46

标签: tensorflow

我对TF变量重用感到非常困惑。对于方法rnn,我能够找到这行代码:

   if time > 0: vs.get_variable_scope().reuse_variables()

但是,对于dynamic_rnn(我需要使用的方法),我找不到任何reuse_variable代码行,或者reuse = True。

rnn_cells模块中的所有RNN单元都使用_linear方法进行初始化,该方法不检查是否已创建变量,但在LSTM_cell中,_get_concat_variable可以很好地检查变量的名称存在于graph_key中或不存在。

dynamic_rnn不重用变量吗?我应该编写一个方法来显式检查是否创建了一个变量,如果是,则返回它吗?

1 个答案:

答案 0 :(得分:1)

dynamic_rnn函数有一个名为scope的参数。因此,您应该创建自己的范围(使用with tf.variable_scope('scope_name', reuse=True))并在调用dynamic_rnn函数时设置它。

您可以查看model_with_buckets的实现,它会为每个存储桶重复使用相同的模型。