tensorflow入门笔记(三) tf.GraphKeys
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
部分相关函数:
- tf.Graph.add_to_collection(name, value) # 将value放入name命名的collection中
- tf.Graph.add_to_collections(names,value) # 将value放入names命名的多个collections中
- tf.add_to_collection(name,value) # tf.Graph.add_to_collection(name, value)的包装器wrapper
- tf.Graph.get_collection(name, scope=None) # 返回名为name的collection中values构成的列表。如果collection中不存在value,会返回一个empty list
# 已知collection存在
- tf.Graph.get_collection_ref(name) # 返回名为name的collection中values构成的列表。如果collection中不存在,会创建一个empty
# collection,并返回一个empty list (collection是否存在未知)
- tf.get_collection(key, scope=None) # tf.Graph.get_collection()的包装器
- tf.get_collection_ref(key) # tf.Graph.get_collection_ref()的包装器