[解決済み] なぜtf.name_scope()を使うのか?
2022-02-02 04:56:34
質問
TensorFlowのチュートリアルを読んでいると、以下のように書かれている。
with tf.name_scope('read_inputs') as scope:
# something
例
a = tf.constant(5)
そして
with tf.name_scope('s1') as scope:
a = tf.constant(5)
は同じ効果があるようです。では、なぜ
name_scope
?
解決方法は?
定数を再利用するユースケースは見当たりませんが、スコープと変数の共有に関する関連情報を紹介します。
スコープ
-
name_scope
は、すべての操作のプレフィックスとしてスコープを追加します。 -
variable_scope
は、すべての変数と操作にプレフィックスとしてスコープを追加します。
変数のインスタンス化
-
tf.Variable()
コンストラクタは、変数名の前に現在のname_scope
とvariable_scope
-
tf.get_variable()
コンストラクタが無視するname_scope
をプレフィックスとするのみで、現在のvariable_scope
例えば、こんな感じです。
with tf.variable_scope("variable_scope"):
with tf.name_scope("name_scope"):
var1 = tf.get_variable("var1", [1])
with tf.variable_scope("variable_scope"):
with tf.name_scope("name_scope"):
var2 = tf.Variable([1], name="var2")
生成する
var1 = <tf.Variable 'variable_scope/var1:0' shape=(1,) dtype=float32_ref>
var2 = <tf.Variable 'variable_scope/name_scope/var2:0' shape=(1,) dtype=string_ref>
変数の再利用
-
常に使用する
tf.variable_scope
を使用して、共有変数のスコープを定義します。 -
変数の再利用を行う最も簡単な方法は
reuse_variables()
以下のように
with tf.variable_scope("scope"):
var1 = tf.get_variable("variable1",[1])
tf.get_variable_scope().reuse_variables()
var2=tf.get_variable("variable1",[1])
assert var1 == var2
-
tf.Variable()
は常に新しい変数を作成し、既に使用されている名前で変数が作成された場合は、単に_1
,_2
などを追加すると、コンフリクトが発生する可能性があります :(
関連
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】Cuda 9.0とcudnn 7.1と互換性のあるtensorflowのバージョンはありますか?
-
[解決済み】Tensorflow: ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory
-
[解決済み] Tensorflowです。tf.expand_dimsはいつ使うの?
-
Tensorflow Error 1 AttributeError: __enter__
-
AttributeError: モジュール 'tensorflow'には属性がありません。
-
tensorflow import error ModuleNotFoundError: モジュール名 '_pywrap_tensorflow_internal' がありません。
-
[解決済み] ロジットとは何ですか?softmaxとsoftmax_cross_entropy_with_logitsの違いは何ですか?
-
[解決済み] TensorflowがGPUのメモリ全体を割り当てるのを防ぐには?
-
[解決済み] TensorflowをCPUで動作させる方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】モジュール 'tensorflow'に属性 'contrib' がない。
-
Tensorflow protobufのバージョンエラー対策 (AttributeError: 'module' オブジェクトに 'Default' 属性がない)
-
[解決済み] tf.int64をtf.float32に変換する方法は?
-
tensorflow 2.0, ニューラルネットワークス: Sinusoidal Fitting, AttributeError: モジュール 'tensorflow' has no attribute 'placeholder' エラー
-
AttributeError: モジュール tensorflow には属性プレースホルダーがありません。
-
AttributeError: モジュール 'tensorflow' には 'placeholder' という属性がありません。
-
tf.convert_to_tensorを使用したときの値のエラーの解決方法
-
anacondaでtensorflow-gpuをインストールする
-
[解決済み] tf.train.latest_checkpoint はチェックポイントパスを渡すと none を返す。
-
[解決済み】TensorFlowとCUDAのバージョンの組み合わせで互換性があるのはどれ?