2017-10-12 16 views
1

数回は、私は次の文を見ましたか?変数がすでに存在する場合は、その名前を呼び出すことによって再利用(または「取得」)できないのはなぜですか?たとえば、私は変数xを持っているので、私はそれが必要などこでもこの変数を使用します。 get_variableを使用して「取得」する理由は何ですかTensorFlowで「可変」とはどういう意味ですか?</p> <blockquote> <p>tf.get_variable既存の変数が</p> </blockquote> <p>まさにそれが何を意味してグラフから取得します:

+0

'logging'モジュールを使用しましたか?たとえば、私はロガー 'logger'を持っているので、私はそれが必要な場所でこの変数を使用します。しかし、私は 'logging.getLogger(logger_name)'を使って複数の名前スコープにわたって 'logger'を得ることもできます。 – Sraw

+1

まだお持ちでない場合は、[TensorFlow guide on variables](https://www.tensorflow.org/programmers_guide/variables)をご覧ください。 'get_variable'はコンテキストに応じて変数を作成したり再利用したりすることができ、変数名を予測可能なサブグラフを作成する関数を記述するのに便利です(' variable_scope'と一緒に)。 – jdehesa

答えて

0

変数がすでに存在する場合は、その名前を呼び出すことで、なぜ再利用できないのですか?

これは通常、モデル全体が1つのファイル内にある場合に実行できます。ただし、大きなモデルは異なるソースファイルとライブラリに分割される可能性があります。この場合、tf.get_variableは単純にconvenientです。「tf.get_variableは、以前に作成した同じ名前の変数を再利用できるため、レイヤーを再利用するモデルを簡単に定義できます。 tensorflowで

アウトオブボックス層と機能は、しばしば(source codetf.contrib.crf.crf_log_likelihood例えば、tf.get_variableとその変数を定義し、crf_log_likelihood呼び出しが別のモジュールまたはさえであっても、クライアントはtransitionsマトリックスを通過することを可能にしますサードパーティのコード。

共有の可能性は、既にコメントで示唆されているように、別の使用例です。したがって、tf.get_variableをレイヤー内に深く書き込むことは、より優れた構成性に向かうステップです。

関連する問題