这里是tensorflow中的tf.GraphKeys的文档,例如TRAINABLE_VARIABLES:将由优化器训练的Variable对象的子集.
我知道tf.get_collection(),哪个可以找到你想要的张量.
使用时tensorflow.contrib.layers.batch_norm(),参数updates_collections默认值为GraphKeys.UPDATE_OPS.
我们如何理解这些集合及其差异.
此外,我们可以在ops.py中找到更多.
Zvi*_*ika 20
这是两件不同的事情.
TRAINABLE_VARIABLES是最小化损失时应修改的变量或训练参数的集合.例如,这些可以是确定由网络中的每个节点执行的功能的权重.
如何将变量添加到此集合中?tf.get_variable除非您指定,否则在使用时定义新变量时会自动发生这种情况
tf.get_variable(..., trainable=False)
Run Code Online (Sandbox Code Playgroud)
你什么时候想要一个变量无法解决?这种情况时有发生.例如,有时您会想要使用两步法,首先在大型通用数据集上训练整个网络,然后在与您的问题特别相关的较小数据集上微调网络.在这种情况下,您可能只想微调网络的一部分,例如最后一层.将一些变量指定为无法解释是执行此操作的方法之一.
UPDATE_OPS是一组ops(图表运行时执行的操作,如乘法,ReLU等),而不是变量.具体而言,此集合维护一个需要在每个培训步骤之前运行的操作列表.
操作如何添加到此集合中?
根据定义,update_ops通过损失最小化发生在常规训练流程之外,因此通常只有在特殊情况下才会将ops添加到此集合中.例如,在执行批量标准化时,您希望在每个培训步骤之前重新计算批处理均值和方差,这就是它的完成方式.本文tf.contrib.layers.batch_norm将更详细地介绍批量标准化使用的机制.
| 归档时间: |
|
| 查看次数: |
8255 次 |
| 最近记录: |