我对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那样吗?
答案 0 :(得分:1)
对于本地tensorflow作业,您需要初始化本地和全局。对于分布式TensorFlow作业,主要工作者初始化本地+全局,而剩余工作者仅初始化本地。