跳轉到主要內容
工程的博客

引入HorovodRunner分布式深度學習培訓

分享這篇文章

今天,我們介紹HorovodRunner感到興奮磚運行時5.0毫升!

HorovodRunner提供了一個簡單的方法來擴大你的深度學習培訓工作負載從一台機器到大型集群,減少整體培訓時間。

出於我們的許多用戶的需求想訓練深度學習模型的數據集,在單個機器上不符合,減少整體培訓時間,HorovodRunner地址由分布在整個集群培訓這一要求,因此每秒處理更多的數據和減少訓練時間從數小時到幾分鍾。

作為努力的一部分集成分布式深度學習與Apache火花,利用項目氫,執行模式引入HorovodRunner利用障礙Apache 2.4火花。執行這個新模型不同於一般的火花執行模型和迎合其容錯分布式培訓需求和任務之間的通信模式中的每個工作節點集群。

在這個博客中,我們描述HorovodRunner和如何使用HorovodRunner的簡單的API來訓練你的深度學習模型在分布式時尚,讓Apache火花處理所有任務之間的協調和溝通每個工人集群中的節點。

HorovodRunner的簡單的API

Horovod超級的開源分布式訓練框架支持TensorFlow,Keras,PyTorch。HorovodRunner, Horovod之上,繼承了這些深度學習框架的支持,使它更容易。

在引擎蓋下,HorovodRunner股票代碼和庫在機器,配置SSH,執行複雜的MPI分布式訓練所需的命令。

作為結果,數據科學家們擺脫負擔的作戰需求,現在可以集中於手工打造的任務模型,進行實驗,並迅速將其部署到生產。

HorovodRunner也提供了一個簡單的界麵,允許您輕鬆地分發工作負載集群上。例如,下麵的代碼片段火車函數4工作機器上運行。這可以幫助你實現良好的擴展你的工作負載,加速模型試驗,縮短生產時間。

sparkdl進口HorovodRunnerhr = HorovodRunner (np =4)hr.run(火車,batch_size =512年時代=5)

下麵的訓練方法包含Horovod培訓代碼。概述了小的示例代碼使用Horovod更改你的單節點的工作負載。幾行代碼變更和使用HorovodRunner,你可以開始利用集群的力量在幾分鍾內。

進口horovod.keras作為hvd進口kerasdef火車(batch_size =512年時代=12):#初始化horovod這裏hvd.init ()
              模型= get_model ()#分割你的訓練和測試數據的基礎上# Horovod等級和尺寸(x_train y_train) (x_test y_test) = get_data (hvd.rank (), hvd.size ())選擇= keras.optimizers.Adadelta ()#覆蓋你的優化器Horovod分布式優化器選擇= hvd.DistributedOptimizer(選擇)#編譯模型模型。編譯(損失= keras.losses。categorical_crossentropy,優化器=選擇、指標(“準確性”))#符合模型模型。fit (x_train y_train,batch_size = batch_size,時代=時代,verbose =2,validation_data = (x_test y_test))

集成的工作流在磚

HorovodRunner發射Horovod培訓工作引發的工作。所以你的開發工作流程是完全相同的其他引發工作數據磚。例如,您可以檢查培訓日誌從火花UI的動畫圖1所示。在下麵。

https://www.youtube.com/watch?v=tlbK4ODANZU

或者你可以很輕鬆地跟蹤錯誤回筆記本電池和動畫圖2所示的代碼。在這裏。

https://www.youtube.com/watch?v=3uQPrfMKEog

這樣的工具TensorBoardHorovod時間表還支持在磚。

開始吧!

開始,請查看例如筆記本電腦使用TensorFlow MNIST數據集進行分類、Keras或PyTorch磚運行時的5.0毫升!你的單節點的工作負載遷移到分布式環境中,您可以簡單地遵循這個文檔中概述的步驟。

試一試今天的磚與Apache 2.4和5.0磚運行時的火花。

閱讀更多

得到更多的信息HorovodHorovodEstimator

免費試著磚
看到所有工程的博客的帖子
Baidu
map