具有全连接层Vs的Tensorflow while_loop。呼吁多次

时间:2018-09-27 18:57:45

标签: tensorflow rnn

在尝试定义RNN op时遇到了一些奇怪的事情,想寻求帮助。 循环是这样的:

_, outputs, _ = tf.while_loop(
    cond=lambda time_step, *_: time_step < steps,
    body=b,
    loop_vars=(time_step, outputs, state))

并且主体使用softmax层,该层在范围“ caption_rnn”内包含tf.contrib.layers.fully_connected层,并将重用设置为false。

当我运行while_loop时,一切都很好。 但是,我想知道:

  1. 因为我将重用设置为false,并且在while_loop主体中多次调用了该层。为什么这样可以没事?
  2. 与此同时,我尝试用多个调用替换while_loop,如下所示:

    time_step,输出,状态= b(time_step,输出,状态)   time_step,输出,状态= b(time_step,输出,状态)   time_step,输出,状态= b(time_step,输出,状态)

    这样,我确实出现了错误:

      

    ValueError:变量caption_rnn / weights已经存在,不允许使用。   您是要在VarScope中设置“ reuse = True”还是“ reuse = tf.AUTO_REUSE”?   最初定义在:.....

有人可以告诉我这里发生了什么吗?非常感谢你!

0 个答案:

没有答案