大劉很長(zhǎng)時(shí)間沒(méi)有在博客上寫東西了躁锡,工作忙是一個(gè)原因,主要也是自己的知識(shí)儲(chǔ)備感覺(jué)已經(jīng)被榨干了筒溃,自己的知識(shí)面受限马篮,對(duì)應(yīng)的技術(shù)水平也到了瓶頸期,肚子里面再也掏不出干貨了怜奖。于是浑测,趁著上班時(shí)間和休息時(shí)候,學(xué)習(xí)了很多之前沒(méi)有來(lái)的學(xué)習(xí)的東西歪玲。NodeJS,ES6/7基礎(chǔ)迁央,Vue,Python读慎,數(shù)據(jù)挖掘基礎(chǔ)漱贱,看的越多,愈發(fā)惶恐夭委,覺(jué)得自己好像什么都不會(huì)了幅狮,面對(duì)這些新技術(shù)棧的沖擊,頗有力不從心的感覺(jué)了株灸,還好意識(shí)到這個(gè)問(wèn)題崇摄,現(xiàn)在開(kāi)始補(bǔ)課,還不算太晚慌烧。
上周參加了集團(tuán)組織的一個(gè)大數(shù)據(jù)培訓(xùn)逐抑,交的一個(gè)大作業(yè)是關(guān)于對(duì)微博用戶進(jìn)行客戶畫像,預(yù)測(cè)測(cè)試集的微博用戶性別屹蚊,因?yàn)樽约簩?duì)數(shù)據(jù)挖掘這塊只懂得皮毛厕氨,結(jié)果自然也就不值得一提了,不過(guò)這次培訓(xùn)的確開(kāi)拓了眼界汹粤,了解了很多機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的知識(shí)命斧,于是準(zhǔn)備先安裝下xgboost這個(gè)深度學(xué)習(xí)框架,不過(guò)安裝過(guò)程中出現(xiàn)了很多坑嘱兼,在此記錄下国葬,也讓Mac環(huán)境編程的同學(xué)少走些彎路。
下載安裝
大劉發(fā)現(xiàn)在csdn或其他網(wǎng)上找到的文章都有不合適的地方,舉個(gè)栗子汇四,譬如這篇文章:http://www.cnblogs.com/chenhuan001/p/5595380.html
前面的都沒(méi)有問(wèn)題接奈,不過(guò)這步替換cc
gcc
c++
g++
的操作,的確讓人無(wú)解了通孽,因?yàn)槊看尾僮魍甓紩?huì)Permissioin Denied
權(quán)限不足的問(wèn)題序宦,后續(xù)的編譯操作就無(wú)法進(jìn)行了。
如圖:
所以大劉建議背苦,要想學(xué)習(xí)一手知識(shí)挨厚,還是直接看官網(wǎng)或者項(xiàng)目對(duì)應(yīng)的github頁(yè)面吧,這才是最正宗的糠惫。
Mac系統(tǒng)的同學(xué)直接跳到 Building on OSX 這一節(jié)
原文:
On OSX, one builds xgboost by
git clone --recursive https://github.com/dmlc/xgboostcd xgboost; cp make/minimum.mk ./config.mk; make -j4
This builds xgboost without multi-threading, because by default clang in OSX does not come with open-mp. See the following paragraph for OpenMP enabled xgboost.
Here is the complete solution to use OpenMP-enabled compilers to install XGBoost. Obtain gcc-6.x.x with openmp support by
brew install gcc --without-multilib
. (brew is the de facto standard of apt-get on OS X. So installing HPC separately is not recommended, but it should work.). Installation of gcc
can take a while (~ 30 minutes)
Now, clone the repository
git clone --recursive https://github.com/dmlc/xgboost
and build using the following commands
cd xgboost; cp make/config.mk ./config.mk; make -j4
NOTE: If you use OSX El Capitan,
brew installs gcc
the latest version gcc-6. So you may need to modify Makefile#L46 and change gcc-5
to gcc-6
. After that change gcc-5/g++-5 to gcc-6/g++-6 in make/config.mk then build using the following commands
cd xgboost; cp make/config.mk ./config.mk; make -j4
內(nèi)容大意主要分以下幾個(gè)步驟:
- 如果你不需要xgboost多線程操作疫剃,直接執(zhí)行以下即可
git clone --recursive https://github.com/dmlc/xgboostcd xgboost; cp make/minimum.mk ./config.mk; make -j4
但是機(jī)器學(xué)習(xí)不用多線程怎么能行,這速度就提不上去了不是硼讽?
- 多線程開(kāi)啟方法
因?yàn)镸ac 的 OS X 系統(tǒng)的 C語(yǔ)言 編譯器用的是 Clang巢价,如下圖,在 Terminal 輸入gcc -v
或者gcc --version
后固阁,顯示 C語(yǔ)言 的編譯器:
這里需要下載gcc的最新版本壤躲,這里推薦使用brew大法
brew install gcc
安裝時(shí)間比較長(zhǎng),大部分都集中在make bootstrap
上备燃,大概需要30-40分鐘時(shí)間碉克,編譯完后的這一步驟很重要。
cp make/config.mk ./config.mk
vi config.mk
修改對(duì)應(yīng)的gcc和g++版本并齐,如圖
然后運(yùn)行
make -j4
這樣就編譯完了xgboost漏麦,然后我們安裝下openmpi
brew install openmpi
如果是利用Python調(diào)用,那么還需要
cd python-package; sudo python3 setup.py install
即可安裝完成况褪。