2017-10-22 12 views

答えて

1

技術的には、すべての変数には、グローバル変数スコープはありません。あなたのスクリプトのトップレベルから

x = tf.Variable(0.0, name='x') 

を実行すると、変数のスコープのない新しい変数xは、デフォルトのグラフに作成されます。それが最初に行うことがある

x = tf.get_variable(name='x') 

順番にから範囲を調べた、現在の変数のスコープを返すtf.get_variable_scope()機能を呼び出します。

しかし、状況はtf.get_variable()機能のために少し異なっていますローカルスタック:

このスタックは空でもかまいません。この場合、新しいスコープが単純に作成され、スタックの上にプッシュされます。

この場合は、必要なオブジェクトである、あなただけ呼び出すことでそれにアクセスすることができます

scope = tf.get_variable_scope() 

をトップレベルから、または既にスコープの中にいる場合は直接ops.get_collection(_VARSCOPE_KEY)に行くことによって。これは、新しい変数がtf.get_variable()関数の呼び出しによって得られる範囲です。簡単に検査できるクラスtf.VariableScopeの通常のインスタンスです。

関連する問題