16

我对文档tf.get_collection()的形式感到困惑,它说

返回集合中具有给定名称的值列表。

互联网上的一个例子是here

from_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, from_scope)

这是否意味着它从tf.GraphKeys.TRAINABLE_VARIABLES to收集变量from_scope

但是,如果我想从另一个作用域获取变量,我该如何使用这个函数呢?谢谢!

4

2 回答 2

10

集合只不过是一组命名的值。

每个值都是计算图的一个节点。

每个节点都有自己的名称,名称由范围/和值的串联组成,例如:preceding/scopes/in/that/way/value

get_collectionscope不允许在不应用任何过滤操作的情况下获取集合中的每个值。

scope参数存在时,集合的每个元素都会被过滤,并且仅当节点的名称以指定的 . 开头时才返回scope

于 2017-06-22T08:11:29.003 回答
1

如字符串文档中所述:

  • TRAINABLE_VARIABLESVariable将由优化器训练的对象子集。

范围:(可选。)一个字符串。如果提供,则过滤结果列表以仅包含name属性与scope使用 匹配的项目re.matchname如果提供了范围,则永远不会返回没有属性的项目。的选择re.match意味着scope没有特殊标记的 a 按前缀过滤。

因此它将返回给定范围内的可训练变量列表。

于 2017-06-22T07:26:09.867 回答