2016-07-16 212 views
2

使用類似於https://github.com/tensorflow/models/tree/master/inception的設置,首席工作人員會自動將檢查點文件定期保存在運行此進程的節點上。我在兩個不同的節點上運行兩個ps。兩名工作人員也分別在兩個節點上工作,其中四名工作人員中的一名擔任主管。恢復分佈式張量流中的檢查點

當沒有任何修改地重新開始訓練時,主管會自動嘗試恢復上一個檢查點文件,但最終會出現錯誤,指出它無法在第二個節點(主要工作人員以外的節點)上找到ckpt,因爲首領從未在第二個節點上拯救過ckpt。

W tensorflow/core/framework/op_kernel.cc:936] Not found: Unsuccessful TensorSliceReader constructor: Failed to find any matching files for /home/muneebs/tf_train/model.ckpt-275 

如果我將ckpt目錄複製到第二個節點,它恢復正常。這是一個錯誤嗎?應該將保存程序初始化爲sharded = True?如果是這樣,那是唯一的方法,並且我們不能將ckpt作爲單個文件來防止節點數量稍後改變?

回答

0

hdfs這樣的分佈式文件系統會有所幫助。

U可以將模型(ckpt)保存到hdfs中的目錄,從而避免了恢復ckpt的問題。

另一種方法是啓動psworker其task_index = 0在同一臺機器上。

+0

hdfs不是一個選項。 task_index並不重要,因爲每臺機器上的每個ps都必須恢復它應該管理的模型參數的一部分。 – Muneeb