内のすべての変数私はこのような一定の範囲内で作成されたいくつかの変数を持っているを取得しますオプティマイザ。これを行う正しい方法は何ですか?Tensorflowはスコープ
答えて
私はあなたがほしいと思うと思うtf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='my_scope')。スコープ内のすべての変数が取得されます。
オプティマイザに渡す場合は、すべてという変数を使用します。これらはデフォルトのコレクションでもあり、tf.GraphKeys.TRAINABLE_VARIABLES
です。
ユーザーは正しくtf.get_collection()
が必要であることを指摘しました。私はこれを行う方法を簡単な例を与える:
がスコープ:あなたがgraphKeysのいずれかを提供することができ、適用範囲が正規表現である
import tensorflow as tf with tf.name_scope('some_scope1'): a = tf.Variable(1, 'a') b = tf.Variable(2, 'b') c = tf.Variable(3, 'c') with tf.name_scope('some_scope2'): d = tf.Variable(4, 'd') e = tf.Variable(5, 'e') f = tf.Variable(6, 'f') h = tf.Variable(8, 'h') for i in tf.get_collection(tf.GraphKeys.GLOBAL_VARIABLES, scope='some_scope'): print i # i.name if you want just a name
お知らせ(オプション)を指定した場合、結果のリストは にフィルタされ、name属性がre.matchを使用して一致する項目のみが含まれます。項目 がname属性なしで返される場合は、スコープが指定されていて、 という選択肢またはre.matchは、特別なトークンを持たないスコープが接頭辞でフィルタリングすることを意味します。
したがって、「some_scope」を渡すと6つの変数が得られます。
他のすべての変数を別のコレクションに入れたい場合はどうすればいいですか?たとえば、GLOBAL_VARIABLESには〜hが含まれており、 'some_scope'には〜fが付きますが、他のコレクションに含まれていないもの(正規表現を使用しないもの) – reese0106
- 1. Tensorflow unreused変数スコープ
- 2. TensorFlowスコープ名の列挙
- 3. TensorFlow再利用可変スコープ
- 4. TensorFlow - ネストされた変数のスコープ
- 5. Tensorflow:スコープ内の変数を入れ替え、スコープ内の変数を別のスコープに入れ替える方法
- 6. Tensorflow:変数のスコープを与える方法
- 7. TensorFlow:変数スコープで 'reuse'を設定解除する
- 8. Tensorflow:スコープの変数を返さないtf.get_collection
- 9. Tensorflow:条件付きで可変スコープを追加する
- 10. Tensorflowの特定のスコープへのグラフのロード
- 11. Tensorflow tf.layers、tf.contrib.layersが可変スコープで動作しない
- 12. は、TensorflowでTensorflow
- 13. は、TensorFlowでTensorFlow
- 14. TensorFlowは自動的に可変スコープ名を変更しますか?次のコード
- 15. Tensorflow:入れ子スコープで変数またはテンソルを名前で取得する
- 16. Tensorflowは異なる名前のスコープで変数を再利用します
- 17. Tensorflowはスコープ内のすべてのgradient_and_variableペアを取得します
- 18. 明示tensorflowセッションはNMT Tensorflow/
- 19. はスコープ
- 20. AngularJSは、スコープ内のスコープ内の$ scopeスコープ内にスコープを割り当てます。
- 21. はTensorflow
- 22. Tensorflowは
- 23. はtensorflow
- 24. はTensorflow
- 25. はtensorflow
- 26. はTensorflow
- 27. はtensorflow
- 28. Tensorflowは、
- 29. Tensorflow LSTM可変スコープValueErrorが複数のJupyterセルに跨っている場合
- 30. はtensorflowを設定した後tensorflow
'tf.GraphKeys.VARIABLES'はv0.12で非推奨になりました(私はこの回答から学んだように:http://stackoverflow.com/a/40918792/1827383)。代わりに 'tf.GraphKeys.GLOBAL_VARIABLES'を使用してください。 –
opを作成してセッションで実行する必要がありますか?コードが不完全なようですが、自己完結型にするのは気になりますか? –
あなたの答えをありがとう!この状況については、スコープ 'tf.variable_scope(main)'の中に2つのサブスコープ 'tf.variable_scope(1st)'と 'tf.variable_scope(2nd)'があり、 '1st'スコープの2つのリストを取得したい別々に最適化するように「2nd」を設定します。 – ytutow