tensorflow入门笔记(三) tf.GraphKeys

时间:2023-12-31 11:53:04

tf.GraphKeys类存放了图集用到的标准名称。

该标准库使用各种已知的名称收集和检索图中相关的值。例如,tf.Optimizer子类在没有明确指定待优化变量的情况下默认优化被收集到tf.GraphKeys.TRAINABLE_VARIABLES中的变量;但如果通过列表的形式明确地指定了需要优化的变量,那优化器就会优化指定的变量。

Graph中定义了下列standard keys:

        • GLOBAL_VARIABLES: 变量对象的默认集合,在分布式环境中被共享。通常,所有的TRAINABLE_VARIABLES变量会在MODEL_VARIABLES中,而所有的MODEL_VARIABLES又会在GLOBAL_VARIABLES中。即TRAINABLE_VARIABLES是MODEL_VARIABLES的子集,MOEDL_VARIABLES是GLOBAL_VARIABLES的子集。所以,MODEL_VARIABLES集合中有部分变量不需要训练。
        • LOCAL_VARIABLES: 变量对象的子集,对每台机器来说都是本地的。该类型变量通常用作临时变量(temporarily variables),比如counters。可以使用tf.contrib.framework.local_variable将变量添加到LOCAL_VARIABLES集合中。
        • MODEL_VARIABLES: 变量对象的子集,在模型中被用作接口。可以使用tf.contrib.framework.model_variable将变量添加到该集合。
        • TRAINABLE_VARIABLES: 变量对象的子集,会被图中的优化器训练。
        • SUMMARIES: 图中创建的summary Tensor对象。
        • QUEUE_RUNNERS: 用来为计算产生输入的QueueRunners对象的集合。
        • MOVING_AVERAGE_VARIABLES: 变量对象的子集,保持滑动平均。
        • REGULARIZATION_LOSSES: 图构造过程中的正则化损失。

下列standrad keys虽然被定义,但是不像其它standard keys那样可以被自动填充:

        • WEIGHTS
        • BIASES
        • ACTIVATIONS

有如下Class Members:

        • ACTIVATIONS
        • ASSET_FILEPATHS
        • BIASES
        • CONCATENATED_VARIABLES
        • COND_CONTEXT
        • EVAL_STEP
        • GLOBAL_STEP
        • GLOBAL_VARIABLES
        • INIT_OP
        • LOCAL_INIT_OP
        • LOCAL_RESOURCES
        • LOCAL_VARIABLES
        • LOSSES
        • METRIC_VARIABLES
        • MODEL_VARIABLES
        • MOVING_AVERAGE_VARIABLES
        • QUEUE_RUNNERS
        • READY_FOR_LOCAL_INIT_OP
        • READY_OP
        • REGULARIZATION_LOSSES
        • RESOURCES
        • SAVEABLE_OBJECTS
        • SAVERS
        • SUMMARIES
        • SUMMARY_OP
        • TABLE_INITIALIZERS
        • TRAINABLE_RESOURCES_VARIABLES
        • TRAINABLE_VARIABLES
        • TRAIN_OP
        • UPDATE_OPS
        • VARIABLES
        • WEIGHTS
        • WHILE_CONTEXT

部分相关函数:

# 已知collection存在

        • tf.Graph.get_collection_ref(name)                 # 返回名为name的collection中values构成的列表。如果collection中不存在,会创建一个empty

# collection,并返回一个empty list  (collection是否存在未知)