2017-05-29 38 views
1

我正在使用張量流,但我不確定爲什麼我甚至需要global_step變量或者甚至需要進行培訓。我也有東西是這樣的:爲什麼以及何時需要使用張量流中的全局步驟

gradients_and_vars = optimizer.compute_gradients(值) train_op = optimizer.apply_gradients(gradients_and_vars)

,然後在我的會話內環路我這樣做:

_ = sess.run([train_op]) 

我正在使用隊列來將數據提供給圖表。我甚至不得不實例化一個global_step變量?

我的循環如下所示:

while not coord.should_stop(): 

所以這個循環停止,當它應該停止。那爲什麼我需要global_step呢?

回答

2

在所有情況下,您都不需要全局步驟。但有時人們想停止訓練,調整一些代碼,然後繼續使用已保存和恢復的模型進行訓練。那麼經常很高興知道這個模型到目前爲止訓練了多長時間(=多少時間步驟)。這就是全球的一步。

有時您的學習率制度可能取決於模型已經被訓練的時間。假設你想每隔10萬步衰減你的學習率。如果您沒有跟蹤已經採取的步驟數,那麼如果您中斷了培訓並且沒有跟蹤已經採取的步驟數,這可能會很困難。

此外,如果您使用張量板,全局步驟是圖表的x軸的中心參數。

+0

好的,謝謝!所以我其實不需要它,但顯然它擁有它是非常好的!調用'global_step'還是可以稱之爲'step'?是重要的嗎? – thigi

+0

我認爲張量板很重要,但我不是100%確定的。爲了所有其他目的,名稱並不重要。 – friesel

+0

好的,是張量板,但不適合訓練本身,所以如果出現錯誤,它不是由於'global_step'。非常感謝!我這麼想,但我不確定。 – thigi

相關問題