TensorFlow分布式訓練MNIST分類器


http://c.biancheng.net/view/2004.html

本節以分布式方式訓練完整的 MNIST 分類器。

該案例受到下面博客文章的啟發:http://ischlag.github.io/2016/06/12/async-distributed-tensorflow/,運行在 TensorFlow 1.2 上的代碼可以在網址https://github.com/ischlag/distributed-tensorflow-example上找到。

注意,這個案例基於上一節,所以按順序閱讀可能會很方便。

具體做法

  1. 導入一些標准模塊並定義運行計算的 TensorFlow 集群,然后為指定任務啟動服務:


     
  2. 讀取 MNIST 數據並定義用於訓練的超參數:


     
  3. 檢查角色是參數服務器還是 worker,如果是 worker 就定義一個簡單的稠密神經網絡,定義一個優化器以及用於評估分類器的度量(例如精確度):


     
  4. 啟動一個監督器作為分布式設置的主機,主機是管理集群其余部分的機器。會話由主機維護,關鍵指令是 sv=tf.train.Supervisor(is_chief=(FLAGS.task_index==0))。另外,通過 prepare_or_wait_for_session(server.target),監督器將等待模型投入使用。請注意,每個 worker 將處理不同的批量模型,然后將最終的模型提供給主機:

這個案例描述了一個分布式 MNIST 分類器的示例,在這個例子中,TensorFlow 允許定義一個三台機器的集群,一個用作參數服務器,另外兩個用作獨立批量訓練數據的 worker。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM