2017-05-03 156 views
0

我想開發分佈式tensorflow迴歸,我想收斂檢查在我的算法除了上限迭代的整合。收斂標準我即將採用的是收斂Logistic迴歸分佈式tensorflow

|| prevW - currW || <è

其中prevW是模型權重和currW當前者的前值。 E是收斂容差。

我的問題是關於以前的模型權重。由於我在圖形複製和異步培訓之間使用,我不知道集羣的工作人員什麼時候會更新權重。假設一個工作人員使用一個批次計算了新的權重,並想檢查算法是否收斂以停止。我將使用本地副本中可用的權重(因此使用相應的張量),或者我將在繼續進行當前計算之前評估張量以獲取最後更新的值?我試圖按照上面的描述去做,但是在達到迭代的上限之後,算法沒有收斂並停止。

感謝您事先的幫助:d

回答

0

我會做在其中的變量是相同的設備收斂檢驗。這樣可以避免在網絡上覆制太多東西。這可以通過將其放入with tf.device(variable.device):塊來完成。

+0

謝謝您的回覆! :)在我的情況下,變量存儲在參數服務器中。即使我將相應的收斂變量放置在工作人員身上,由於訓練是異步的,因此以前的權重應視爲試圖檢查計算收斂的工作人員或最後存儲在ps中的最後一個變量,後者可能已由其他工作人員更改? – nikospro93

+0

我認爲這是一個算法問題,應該通過實驗來決定(即嘗試兩種方法並查看哪一個更強大)。隨機梯度的收斂測試可能會很棘手,因爲看到一個導致沒有移動的梯度並不意味着你將永遠不會看到導致移動的梯度。 –