99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀駕馭機器學(xué)習(xí)的13種框架
駕馭機器學(xué)習(xí)的13種框架
2016-02-03
收藏

來源 | 云頭條
想大膽嘗試機器學(xué)習(xí)?這些工具可以為你處理繁重的任務(wù)。
駕馭機器學(xué)習(xí)的13種框架

在去年,機器學(xué)習(xí)以前所未有的勢頭進(jìn)入主流。對這股潮流起到推波助瀾的不單單是成本低廉的云環(huán)境和功能更強大的GPU硬件,還有如今面向機器學(xué)習(xí)的數(shù)量激增的框架。它們都是開源框架,而更重要的是,它們旨在化解機器學(xué)習(xí)最難的部分,將其技術(shù)或方法提供給廣泛的開發(fā)人員。
本文介紹了13種機器學(xué)習(xí)框架,有的在去年剛出爐,有的剛修訂。它們引起了我們的注意,因為都是在IT界具有重要影響力的產(chǎn)品,有的試圖帶來一種簡化的解決辦法,有的旨在攻克與機器學(xué)習(xí)有關(guān)的某個難題。
Apache Spark MLlib

Apache Spark最廣為人知的角色就是它是Hadoop家族的一員,但這種內(nèi)存數(shù)據(jù)處理框架脫胎于Hadoop之外,而且在Hadoop生態(tài)系統(tǒng)外面揚名立萬。Spark已成為一款可靠的機器學(xué)習(xí)工具,這歸功于其日益龐大的算法庫,其算法可以高速運用于內(nèi)存中數(shù)據(jù)。
Spark沒有坐以待斃,因為Spark擁有的算法一直在不斷增加和修訂。去年的1.5版本增添了許多新的算法,改進(jìn)了現(xiàn)有的算法,并進(jìn)一步增強了Python中對MLlib的支持,而Python是面向數(shù)學(xué)運算和統(tǒng)計用戶的一大平臺。除了其他功能外,剛發(fā)布的Spark 1.6還讓用戶可以通過持久化流水線(persistent pipeline),暫停和恢復(fù)Spark ML任務(wù)。
Apache Singa

深度學(xué)習(xí)”框架支持處理繁重任務(wù)的機器學(xué)習(xí)功能,比如自然語言處理和圖像識別。Singa最近得到接受、進(jìn)入Apache孵化器(Apache Incubator),這種開源框架旨在讓用戶很容易訓(xùn)練針對大量數(shù)據(jù)的深度學(xué)習(xí)模型。
Singa提供了一種簡單的編程模型,用于訓(xùn)練跨機器集群的深度學(xué)習(xí)網(wǎng)絡(luò),它還支持許多常見類型的訓(xùn)練任務(wù):卷積神經(jīng)網(wǎng)絡(luò)、受限玻爾茲曼機和遞歸神經(jīng)網(wǎng)絡(luò)。模型可以同步訓(xùn)練(逐個訓(xùn)練),也可以異步訓(xùn)練(并行訓(xùn)練),這取決于哪種方法最適用于某個問題。Singa還利用Apache Zookeeper簡化了集群構(gòu)建和設(shè)置。
Caffe

深度學(xué)習(xí)框架Caffe“在開發(fā)當(dāng)初牢記表達(dá)、速度和模塊化”。Caffe在2013年為機器視覺項目而開發(fā),此后擴大到了其他應(yīng)用領(lǐng)域,比如語音和多媒體。
速度是一大優(yōu)先事項,于是Caffe完全用C++編寫,并支持CUDA加速,不過它可以根據(jù)需要在CPU處理和GPU處理之間進(jìn)行切換。發(fā)行版包括一套面向常見分類任務(wù)的免費開源參考模型,其他模型則由Caffe用戶社區(qū)開發(fā)和捐獻(xiàn)。
微軟Azure ML Studio

考慮到執(zhí)行機器學(xué)習(xí)需要大量的數(shù)據(jù)和強大的計算能力,云是機器學(xué)習(xí)應(yīng)用的理想環(huán)境。微軟為Azure配備了自己的按需付費的機器學(xué)習(xí)服務(wù):Azure ML Studio,分為按月付費、按小時付費和免費套餐這三種版本。(該公司的HowOldRobot項目就是用這個系統(tǒng)構(gòu)建的。)
Azure ML Studio讓用戶可以創(chuàng)建和訓(xùn)練模型,然后將它們變成可以被其他服務(wù)使用的API。用戶可以為模型數(shù)據(jù)獲得每個帳戶最多10GB的存儲空間,不過你也可以將自己的Azure存儲空間連接到該服務(wù),以處理更龐大的模型。一系列廣泛的算法可供使用,這要感謝微軟和第三方。你甚至不需要帳戶就可以試用該服務(wù);匿名登錄后,就可以使用Azure ML Studio長達(dá)8個小時。
亞馬遜機器學(xué)習(xí)

亞馬遜對云服務(wù)采用的一般方法遵循這種模式:提供基本服務(wù),培育關(guān)注它的核心受眾,讓他們在上面構(gòu)建,然后找到他們真正需要的東西,并提供這種東西。
亞馬遜首次嘗試提供機器學(xué)習(xí)即服務(wù):亞馬遜機器學(xué)習(xí)(Amazon Machine Learning)也是如此。它連接到存儲在亞馬遜S、Redshift或RDS中的數(shù)據(jù),可以對相關(guān)數(shù)據(jù)執(zhí)行二元分類、多類分類或遞歸等操作。然而,這項服務(wù)完全以亞馬遜為中心。除了依賴存儲在亞馬遜上的數(shù)據(jù)外,因而生成的模型無法導(dǎo)入或?qū)С?,?xùn)練模型的數(shù)據(jù)集不得大于100GB。不過,它僅僅是個開始,表明了它更注重機器學(xué)習(xí)的實用性,而不是便利性。
微軟分布式機器學(xué)習(xí)工具包

用來處理任何機器學(xué)習(xí)問題的計算機部署得越多,效果越好,但是將機器結(jié)合起來、開發(fā)可以跨所有機器順暢運行的機器學(xué)習(xí)應(yīng)用程序可能很棘手。微軟的DMTK(分布式機器學(xué)習(xí)工具包)框架就專門處理這個問題:跨系統(tǒng)集群分配各種各樣的機器學(xué)習(xí)任務(wù)。
DMTK號稱是一種框架,而不是一種完備的即開即用的解決方案,所以它自帶的實際算法數(shù)量很少。不過DMTK的設(shè)計便于將來擴展,而且便于用戶最充分地利用資源有限的集群。比如說,集群中的每個節(jié)點都有本地緩存,減少了與中央服務(wù)器節(jié)點之間的通信量,而中央服務(wù)器節(jié)點為相應(yīng)任務(wù)規(guī)定了范圍。
谷歌TensorFlow

谷歌TensorFlow酷似微軟的DMTK,這種機器學(xué)習(xí)框架旨在跨多個節(jié)點靈活擴展。與谷歌的Kubernetes一樣,它當(dāng)初也是旨在解決谷歌內(nèi)部的問題,谷歌最終決定將它作為一款開源產(chǎn)品來發(fā)布。
TensorFlow實施了所謂的數(shù)據(jù)流圖(data flow graph),其中成批數(shù)據(jù)(“tensor”)可以由數(shù)據(jù)流圖描述的一系列算法來加以處理。數(shù)據(jù)在系統(tǒng)中的移動被稱為“流”(flow)――TensorFlow由此得名。數(shù)據(jù)流圖可以用C++或Python來裝配,可以在CPU或GPU上進(jìn)行處理。谷歌的長期計劃是,讓第三方貢獻(xiàn)者來完善TensorFlow。
微軟計算網(wǎng)絡(luò)工具包

微軟發(fā)布DMTK不久,緊隨其后發(fā)布了另一款機器學(xué)習(xí)工具包:計算網(wǎng)絡(luò)工具包(Computational Network Toolkit,簡稱CNTK)。
CNTK類似谷歌TensorFlow,因為它讓用戶可以通過有向圖來構(gòu)建神經(jīng)網(wǎng)絡(luò)。微軟還認(rèn)為它與Caffe、Theano和Torch等項目相媲美。它聲稱相比那些框架的優(yōu)點主要在于速度快,具體來說是能夠同時充分利用多個CPU和多個GPU。微軟聲稱,使用CNTK,并結(jié)合Azure上的GPU集群,將Cortana的語音識別訓(xùn)練的速度提升了一個數(shù)量級。
CNTK最初作為微軟的語音識別研究項目的一部分而開發(fā),早在2015年4月起初作為一個開源項目來提供,不過后來重新發(fā)布到GitHub上,采用了一種極其寬松的、類似MIT許可證的許可證。
Veles(三星)

Veles是一種面向深度學(xué)習(xí)應(yīng)用的分布式平臺;與TensorFlow和DMTK一樣,它也用C++編寫,不過使用Python來執(zhí)行自動化和節(jié)點之間的協(xié)調(diào)。數(shù)據(jù)集加以分析、自動規(guī)范后被饋送到集群,REST API讓受過訓(xùn)練的模型可以立即用在生產(chǎn)環(huán)境中(假設(shè)你的硬件足夠好)。
Veles使用Python并不局限于僅僅將它用作粘合代碼(glue code)。IPython(現(xiàn)在的Jupyter)這種數(shù)據(jù)可視化和分析工具,可以直觀顯示和發(fā)布來自Veles集群的結(jié)果。三星希望,發(fā)布開源Veles項目有望促進(jìn)進(jìn)一步的發(fā)展,比如移植到Windows和Mac OS X。
Brainstorm

Brainstorm由瑞士盧加諾的Dalle Molle人工智能研究所(IDSIA)的兩名博士生Klaus Greff和Rupesh Srivastava開發(fā)而成,該項目的目的是“讓深度神經(jīng)網(wǎng)絡(luò)快速、靈活而有趣”。已經(jīng)包括了支持眾多遞歸神經(jīng)網(wǎng)絡(luò)模型(比如LSTM)的功能。
Brainstorm使用Python提供兩個“hander”,即數(shù)據(jù)管理API :一個用于Numpy的CPU運算,另一個通過CUDA利用GPU。大部分工作通過Python腳本來完成,所以別指望有一個豐富的前端GUI,只有你給自己提供的那個GUI。但長遠(yuǎn)計劃是開發(fā)這種構(gòu)架:可以運用“從早期開源項目汲取的經(jīng)驗”,并使用“與多種平臺和計算后端兼容的新的設(shè)計元素”。
mlpack 2

我們之前匯總的機器學(xué)習(xí)資源提到了mlpack,這種基于C ++的機器學(xué)習(xí)庫最早于2011年推出,設(shè)計當(dāng)初著眼于“可擴展性、速度和易用性”,據(jù)庫的開發(fā)者聲稱。實施mlpack有兩種方法:通過處理簡易的“黑盒子”操作的命令行執(zhí)行文件緩存,或者借助處理較復(fù)雜工作的C ++ API。
2.0版本有很多重構(gòu)和新功能,包括許多新類型的算法,并對現(xiàn)有算法做了改變,以便提速或簡化。比如說,它丟棄了Boost庫面向C++ 11的原生隨機函數(shù)的隨機數(shù)發(fā)生器。
一個長期存在的缺點是,缺少針對除C++之外的任何語言的綁定,這意味著使用從R到Python各種語言的用戶無法使用mlpack,除非有人為上述語言推出了自己的包裝器。已開展了工作,添加支持MATLAB的功能,但是像這樣的項目在處理機器學(xué)習(xí)工作的主要環(huán)境下徑直發(fā)揮作用,才往往會受到更大的追捧。
Marvin

Marvin神經(jīng)網(wǎng)絡(luò)框架是另一種比較新的框架,它是普林斯頓視覺小組(Princeton Vision Group)的杰作。它“生來就是為了被改動的”,開發(fā)者在項目的說明文檔中這么解釋,它只依賴用C++和CUDA GPU框架編寫的幾個文件。盡管代碼本身有意很小,但項目確實隨帶許多預(yù)先訓(xùn)練的模型:只要適當(dāng)引用,可以重復(fù)使用這些模型,使用合并請求(pull request)貢獻(xiàn)給社區(qū),就像該項目的自家代碼那樣。
Neon

Nervana這家公司開發(fā)了自己的深度學(xué)習(xí)硬件和軟件平臺,它提供了一種名為Neon的深度學(xué)習(xí)框架,將其作為一個開源項目。它使用可插入式模塊,以便在CPU、GPU和Nervana自己的定制硬件上處理繁重任務(wù)。
Neon主要是用Python編寫的,有幾個組件用C++編寫,以求速度。這樣一來,用Python處理數(shù)據(jù)科學(xué)工作的其他人可以立即用它,擁有Python綁定的其他任何框架也可以立即用它。
end

 


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }