2017-06-22 112 views
7

我被tf.get_collection()形式docs迷惑,它說,如何理解tf.get_collection()在TensorFlow

返回與給定名稱的集合中值的列表。

從互聯網的例子是在這裏

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

是不是就意味着它收集變量從tf.GraphKeys.TRAINABLE_VARIABLESfrom_scope

但是,如果我想從另一個範圍獲取變量,該如何使用此函數?謝謝!

回答

4

集合不過是一組命名的值。

每個值都是計算圖的一個節點。

每個節點都有自己的名字和名稱由範圍,/和值的串聯組成,如:preceding/scopes/in/that/way/value

get_collection,沒有scope允許抓取集合中的每個值,而不應用任何過濾操作。

當參數scope存在時,集合中的每個元素都會被過濾,並且只有當節點的名稱以指定的scope開頭時纔會返回。

0

如在串文檔描述:

  • TRAINABLE_VARIABLES:將 由優化被訓練Variable對象的子集。

範圍:(可選)的字符串。如果提供,則對結果列表進行過濾 ,以僅包括name屬性匹配scope使用 re.match的項目。如果提供了 作用域,則不會返回沒有name屬性的項目。 re.match的選擇意味着一個scope沒有 特殊標記按前綴過濾。

所以它會返回給定範圍內的可訓練變量列表。