-1- 为什么要对Variable进行Initialize操作
-2- tf.global_variables_initializer()
tf.global_variables_initializer()添加节点用于初始化全局变量(GraphKeys.GLOBAL_VARIABLES)。
返回一个初始化所有全局变量的操作(Op)。
在你构建完整个模型并在会话中加载模型后,运行这个节点。
能够将所有的变量一步到位的初始化,非常的方便。
通过feed_dict, 你也可以将指定的列表传递给它,只初始化列表中的变量。
-3- tf.local_variables_initializer()
tf.local_variables_initializer()返回一个初始化所有局部变量的操作(Op)。
初始化局部变量(GraphKeys.LOCAL_VARIABLE)。
GraphKeys.LOCAL_VARIABLE中的变量指的是被添加入图中,但是未被储存的变量。
关于储存,请了解tf.train.Saver相关内容,在此处不详述。
-4- 常见GraphKeys
GraphKeys.GLOBAL_VARIABLES
:
该collection默认加入所有的Variable对象,并且在分布式环境
中共享。
一般来说,TRAINABLE_VARIABLES包含在MODEL_VARIABLES中,MODEL_VARIABLES包含在GLOBAL_VARIABLES中。
GraphKeys.LOCAL_VARIABLES
:
与GLOBAL_VARIABLES不同的是,它只包含本机器上的Variable,即不能在分布式环境
中共享。
GraphKeys.MODEL_VARIABLES
:
顾名思义,模型中的变量,在构建模型中,所有用于正向传递的Variable都将添加到这里。
GraphKeys.TRAINALBEL_VARIABLES
:
所有用于反向传递的Variable,即可训练(可以被optimizer优化,进行参数更新)的变量。
GraphKeys.SUMMARIES
:
跟Tensorboard相关,这里的Variable都由tf.summary建立并将用于可视化。
GraphKeys.QUEUE_RUNNERS
:
the QueueRunner objects that are used to produce input for a computation.
GraphKeys.MOVING_AVERAGE_VARIABLES
:
the subset of Variable objects that will also keep moving averages.
GraphKeys.REGULARIZATION_LOSSES
:
regularization losses collected during graph construction.
在TensorFlow中也定义了下面几个GraphKeys,但是它们not automatically populated。
GraphKeys.WEIGHTS
GraphKeys.BIASES
GraphKeys.ACTIVATIONS
网友评论