2017-06-22 11 views
7

でtf.get_collectionを()理解するためにどのように、それはは私が<code>tf.get_collection()</code>フォーム<a href="https://www.tensorflow.org/versions/master/api_docs/python/framework.html#Graph.get_collection" rel="noreferrer">docs</a>で混乱していますTensorFlow

は、指定された名前を持つコレクション内の値のリストを返しますと言っています。インターネットからの

そして例はこちら

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

で、それはそれはtf.GraphKeys.TRAINABLE_VARIABLESからfrom_scopeに変数を収集することを意味しますか?

しかし、別のスコープから変数を取得するにはどうすればこの関数を使用できますか?ありがとうございました!

答えて

4

コレクションは、値の名前付きセットに過ぎません。

すべての値は、計算グラフのノードです。

各ノードは、その名前を持ち、名前がスコープの連結によって構成され、/および値、等:preceding/scopes/in/that/way/value

get_collectionscopeすることなく、任意のフィルタ演算を適用することなく、コレクション内のすべての値を取得することを可能にします。

scopeパラメータが存在する場合、ノードの名前が指定されたscopeで始まる場合にのみ、コレクションのすべての要素がフィルタ処理され、その要素が返されます。

0

ストリングドキュメントに記載されているように:

  • TRAINABLE_VARIABLES: オプティマイザによって訓練されるVariableオブジェクトのサブセット。

範囲:(オプション)文字列。指定されている場合は、属性がscopeと一致する項目のみを含めるように、結果リストには がフィルタされ、 re.matchを使用します。 スコープが指定されている場合、name属性のないアイテムは返されません。 re.matchを選択すると、接頭辞で 特殊トークンフィルタなしのscopeがあることを意味します。

したがって、指定されたスコープ内の訓練可能な変数のリストを返します。