如何理解TensorFlow

时间:2017-06-22 06:08:32

标签: tensorflow tensorflow-gpu

我对tf.get_collection() from_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, from_scope) 感到困惑,它说

  

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

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

tf.GraphKeys.TRAINABLE_VARIABLES

是否意味着它会收集从from_scopeXmlDataDocument xmldoc = new XmlDataDocument(); int i = 0; string str = null; FileStream fs = new FileStream("c:\\temp\\my.xml", FileMode.Open, FileAccess.Read); xmldoc.Load(fs); 的变量?

但是,如果我想从另一个范围获取变量,我该如何使用此功能?谢谢!

2 个答案:

答案 0 :(得分:6)

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

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

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

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

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

答案 1 :(得分:1)

如字符串doc:

中所述
  
      
  • TRAINABLE_VARIABLES:将Variable个对象的子集   由优化者训练。
  •   

  

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

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