tf.initialize_all_variables()和tf.initialize_local_variables()有什么区别?

时间:2016-10-24 13:50:42

标签: tensorflow

我正在审核此示例中的代码:fully_connected_reader.py

我对第147行和第148行感到困惑:

init_op = tf.group(tf.initialize_all_variables(),
                   tf.initialize_local_variables())

我不知道哪些变量是all variables,哪些是local variables。有什么想法吗?

3 个答案:

答案 0 :(得分:8)

tf.initialize_all_variables()tf.initialize_variables(tf.all_variables())的快捷方式,tf.initialize_local_variables()tf.initialize_variables(tf.local_variables())的快捷方式,用于初始化GraphKeys.VARIABLESGraphKeys.LOCAL_VARIABLE个集合中的变量,分别

GraphKeys.LOCAL_VARIABLES集合中的变量是添加到图表中但未保存或恢复的变量(source)。

默认情况下,

tf.Variable()会向GraphKeys.VARIABLE集合添加一个新变量,该变量可由collections = argument控制。

答案 1 :(得分:3)

TF中的局部变量是使用collections=[tf.GraphKeys.LOCAL_VARIABLES]创建的任何变量。例如:

e = tf.Variable(6, name='var_e', collections=[tf.GraphKeys.LOCAL_VARIABLES])
  

LOCAL_VARIABLES:每个都是本地的Variable对象的子集   机。通常用于临时变量,如计数器。注意:   使用tf.contrib.framework.local_variable添加到此集合。

它们通常不会保存/恢复到检查点,并用于临时或中间值。有关更详细的答案,请查看here

全局变量主要是由您初始化的所有其他变量。

在TF的新版本中,您应该使用tf.global_variables_initializer()tf.local_variables_initializer(),因为之前的功能已被弃用。

答案 2 :(得分:0)

  • GLOBAL_VARIABLES

收集全局变量对象的密钥(跨机器共享)。所有变量的默认集合,本地变量除外。

  • LOCAL_VARIABLES

用于收集机器本地且未保存/恢复的本地变量的密钥。