我对文档tf.get_collection()的形式感到困惑,它说
返回集合中具有给定名称的值列表。
互联网上的一个例子是here
from_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, from_scope)
这是否意味着它从tf.GraphKeys.TRAINABLE_VARIABLES to收集变量from_scope?
但是,如果我想从另一个作用域获取变量,我该如何使用这个函数呢?谢谢!
我对文档tf.get_collection()的形式感到困惑,它说
返回集合中具有给定名称的值列表。
互联网上的一个例子是here
from_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, from_scope)
这是否意味着它从tf.GraphKeys.TRAINABLE_VARIABLES to收集变量from_scope?
但是,如果我想从另一个作用域获取变量,我该如何使用这个函数呢?谢谢!
集合只不过是一组命名的值。
每个值都是计算图的一个节点。
每个节点都有自己的名称,名称由范围/和值的串联组成,例如:preceding/scopes/in/that/way/value
get_collection,scope不允许在不应用任何过滤操作的情况下获取集合中的每个值。
当scope参数存在时,集合的每个元素都会被过滤,并且仅当节点的名称以指定的 . 开头时才返回scope。
如字符串文档中所述:
TRAINABLE_VARIABLES:Variable将由优化器训练的对象子集。
和
范围:(可选。)一个字符串。如果提供,则过滤结果列表以仅包含
name属性与scope使用 匹配的项目re.match。name如果提供了范围,则永远不会返回没有属性的项目。的选择re.match意味着scope没有特殊标记的 a 按前缀过滤。
因此它将返回给定范围内的可训练变量列表。