微軟分布式機器學習工具包DMTK——初窺門徑


在現在機器學習如日中天的大背景下,微軟亞洲研究院的實習崗位中,機器學習組的工作也是維護DMTK,參與算法改進,那么在此之前我們得了解DMTK是個啥。

DMTK由一個服務於分布式機器學習的框架和一組分布式機器學習算法構成,是一個將機器學習算法應用在大數據上的強大工具包;無論是學術界的研究人員還是工業界的開發者,DMTK可以幫助他們在超大規模數據上靈活穩定地訓練大規模機器學習模型。

官網:http://www.dmtk.io/

DMTK 包括以下幾個項目:

 

以Linux為例:

sudo apt-get install libopenmpi-dev openmpi-bin build-essential cmake git
git clone https://github.com/Microsoft/multiverso.git && cd multiverso
mkdir build && cd build
cmake .. && make && sudo make install

使用文檔:https://github.com/Microsoft/Multiverso/wiki

 

下面是一個簡單的例子:

 1 #include <multiverso/multiverso.h>
 2 #include <multiverso/util/log.h>
 3 #include <multiverso/util/configure.h>
 4 #include <multiverso/table/array_table.h>
 5 using namespace multiverso;
 6 
 7 int main(int argc, char* argv[]) {
 8   MV_SetFlag("sync", true);
 9   MV_Init(&argc, argv);
10 
11   ArrayTableOption<int> option;
12   option.size = 500;
13   ArrayWorker<int>*  table = MV_CreateTable(option);
14 
15   std::vector<int> model(100, 0);
16   std::vector<int> delta(100, 1); 
17 
18   for (int iter = 0; iter < 100; ++iter) {
19     table->Add(delta.data(), delta.size());
20     table->Get(model.data(), model.size());
21     // CHECK_EQ(model[i], (iter+1) * MV_NumWorkers());
22   }
23 
24   MV_ShutDown();
25 }

 


免責聲明!

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



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