2017-09-14 9 views
2

私はtf.local_variables_initializerによってちょっと混乱しています。私は、彼らはただTensorFlow:ローカル変数を初期化するとき

init_op = tf.group(
        tf.global_variables_initializer(), 
        tf.local_variables_initializer() 
     ) 

などの呼び出しに厚く塗る他の人々のコードで表示さ

だけで、すべてのTFプログラムで呼び出すことinit_opべきか?これはプログラミングの "怠惰な" TFスタイルですか?一例として、

として指定input_string_producerのようなキュー考える:

tf.input_string_producer(file_list,num_epochs=None) 

tf.local_variables_initializer()

を必要としないが、エポック

tf.input_string_producer(file_list,num_epochs=1) 

の実際の数を指定する場合は、実際にを行いますtf.local_variables_initializer()が実行されている必要があります。

このような「隠された」ローカル変数を初期化しない場合、および/またはしないようにするにはどうすればよいですか? FIFOQueue自分自身の変数であるか、あるいはqueue.initializerのようなものを持っているべきではありませんか?

答えて

1

ローカルテンソルフロージョブでは、ローカルとグローバルの両方を初期化する必要があります。分散型TensorFlowジョブの場合、チーフワーカーはローカル+グローバルを初期化しますが、残りのワーカーはローカルのみを初期化します。

+0

ここでベストプラクティスは何ですか?ローカルで使うには、 'init_op'を呼び出してそれを忘れてしまいますか? 「隠された」ローカルバールについて知るには? –

+0

はい、ベストプラクティスはあなたが投稿したコードのように 'init_op'を使うことです –

関連する問題