我正在审查这个例子中的代码:fully_connected_reader.py
我对第147行和148行感到困惑:
init_op = tf.group(tf.initialize_all_variables(),
tf.initialize_local_variables())
我不知道哪些变量是所有变量
,哪些是局部变量
。有什么想法吗?
我正在审查这个例子中的代码:fully_connected_reader.py
我对第147行和148行感到困惑:
init_op = tf.group(tf.initialize_all_variables(),
tf.initialize_local_variables())
我不知道哪些变量是所有变量
,哪些是局部变量
。有什么想法吗?
tf.initialize_all_variables()
是tf.initialize_variables(tf.all_variables())
的简写,tf.initialize_local_variables()
是tf.initialize_variables(tf.local_variables())
的简写。分别初始化了在GraphKeys.VARIABLES
和GraphKeys.LOCAL_VARIABLE
集合中的变量。
GraphKeys.LOCAL_VARIABLES
集合中的变量是添加到图中但不保存或恢复的变量 (来源)。
tf.Variable()
默认将新变量添加到GraphKeys.VARIABLE
集合中,可以通过collections=参数进行控制。
在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将其添加到此集合中。
它们通常不会被保存/恢复到检查点,并用于临时或中间值。有关更详细的答案,请查看这里。
全局变量通常是由您初始化的其他任何变量。
在新版本的TF中,应使用tf.global_variables_initializer()
,tf.local_variables_initializer()
,因为之前的函数已被弃用。
用于收集全局变量对象(在多台机器之间共享)。除了本地变量,这是所有变量的默认收集方式。
用于收集本地变量对象,这些变量仅限于本地机器使用,不会被保存或恢复。