2017-09-14 215 views
2

我有點困惑tf.local_variables_initializer,我不知道什麼時候調用它。TensorFlow:何時初始化局部變量

我在其他國家的人民代碼中看到,他們只是塗滿像

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

調用應該init_op只是在每一個TF程序調用?這是「懶惰」的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' –