我什么时候应该初始化局部变量?

时间:2017-09-14 13:36:14

标签: tensorflow

我对tf.local_variables_initializer感到有点困惑。我不知道什么时候打电话。

我在其他人的代码中看到他们只是像

这样的电话
init_op = tf.group(tf.global_variables_initializer(),
                   tf.local_variables_initializer())

每个TF程序都应该调用init_op吗?这是“懒惰”的TF编程风格吗?

例如,将input_string_producer之类的队列视为:

tf.input_string_producer(file_list, num_epochs=None)

不需要tf.local_variables_initializer()

但是,在指定实际的纪元数时

tf.input_string_producer(file_list,num_epochs=1)

实际上要求执行tf.local_variables_initializer()

程序员如何知道何时(或何时不是)初始化这种“隐藏”的局部变量? FIFOQueue不应该初始化自己的变量或者像queue.initializer那样吗?

1 个答案:

答案 0 :(得分:1)

对于本地tensorflow作业,您需要初始化本地和全局。对于分布式TensorFlow作业,主要工作者初始化本地+全局,而剩余工作者仅初始化本地。