如何理解 TensorFlow 中的 tf.get_collection()

How to understand tf.get_collection() in TensorFlow

我对 tf.get_collection() 表格 docs 感到困惑,它说

Returns a list of values in the collection with the given name.

这里是一个来自互联网的例子

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

意思是收集tf.GraphKeys.TRAINABLE_VARIABLESfrom_scope的变量吗?

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

如字符串文档中所述:

  • TRAINABLE_VARIABLES: the subset of Variable objects that will be trained by an optimizer.

scope: (Optional.) A string. If supplied, the resulting list is filtered to include only items whose name attribute matches scope using re.match. Items without a name attribute are never returned if a scope is supplied. The choice of re.match means that a scope without special tokens filters by prefix.

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

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

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

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

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

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