1
本文作者: 李尊 | 2016-09-20 18:41 |
導(dǎo)讀:Go又稱Golang,是Google開(kāi)發(fā)的一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型且具有垃圾回收功能的編程語(yǔ)言。Go語(yǔ)言于2009年11月正式宣布推出并開(kāi)放源代碼,開(kāi)始在Linux及Mac OS X平臺(tái)上進(jìn)行了實(shí)現(xiàn),后追加Windows系統(tǒng)下的實(shí)現(xiàn)。
大部分用過(guò)Go語(yǔ)言的人都認(rèn)可其是一種非常不錯(cuò)的生產(chǎn)力工具,有人總結(jié)其優(yōu)點(diǎn)如下:
部署簡(jiǎn)單
并發(fā)性好
語(yǔ)言設(shè)計(jì)良好
執(zhí)行性能好
目前也有許多使用Go語(yǔ)言開(kāi)發(fā)的成功項(xiàng)目,包括:nsq、docker、packer、skynet、Doozer、Heka、cbfs、tsuru、groupcache、god、gor等。鑒于其成功經(jīng)驗(yàn),有開(kāi)發(fā)者想用Go語(yǔ)言來(lái)進(jìn)行機(jī)器學(xué)習(xí)項(xiàng)目的開(kāi)發(fā)?,F(xiàn)在有一個(gè)好消息,對(duì)于想要使用Go語(yǔ)言作為開(kāi)發(fā)平臺(tái)的機(jī)器學(xué)習(xí)開(kāi)發(fā)者來(lái)說(shuō),有越來(lái)越多的項(xiàng)目可以去進(jìn)行選擇了,雖然還是不多。
與其使用其他編程語(yǔ)言(主要是C/C++)編寫(xiě)的資料庫(kù),開(kāi)發(fā)者現(xiàn)在能直接使用完全用Go語(yǔ)言編寫(xiě)的工具包展開(kāi)工作了?,F(xiàn)有的用其他語(yǔ)言編寫(xiě)的機(jī)器學(xué)習(xí)資料庫(kù)雖然有很多的用戶以及其特有文化,但是很多人對(duì)利用Go語(yǔ)言工具的便利特性也十分有興趣。
下面我們來(lái)了解幾個(gè)主要的Go語(yǔ)言機(jī)器學(xué)習(xí)項(xiàng)目:
GoLearn是自稱“內(nèi)置電池”的機(jī)器學(xué)習(xí)資料庫(kù),絕對(duì)是首選項(xiàng)之一。
作者在項(xiàng)目描述中提到——簡(jiǎn)潔、易定制是其追求的目標(biāo)。GoLearn中一些接口使用的數(shù)據(jù)處理方式和scikit-learn(一個(gè)非常流行的Python機(jī)器學(xué)習(xí)項(xiàng)目)是非常相似的。想要逃離Python的用戶應(yīng)該可以用它做一些短期的工作。其中另外還有一些使用C++構(gòu)筑的線性模型資料庫(kù),但是其他的全是Go語(yǔ)言編寫(xiě)的。GoLearn實(shí)現(xiàn)了熟悉的Scikit-learn 適應(yīng)/預(yù)測(cè)界面,可實(shí)現(xiàn)快速預(yù)估測(cè)試和交換。GoLearn是一個(gè)成熟的項(xiàng)目,它提供了交叉驗(yàn)證和訓(xùn)練/測(cè)試等輔助功能。
Goml
Goml自詡為“在線Golang機(jī)器學(xué)習(xí)工具”,據(jù)其開(kāi)發(fā)者所言意思是其“包含了許多工具,能讓你以在線方式學(xué)習(xí)其頻道的數(shù)據(jù)內(nèi)容?!边@個(gè)項(xiàng)目之所以突出是因?yàn)槠鋸?qiáng)調(diào)了其作為其他應(yīng)用一部分存在的可能性,使得構(gòu)筑“綜合測(cè)試、大量文檔以及簡(jiǎn)潔、高效、模塊化的源代碼”更加容易些了。但是如果你需要的知識(shí)解決基礎(chǔ)的二元分類問(wèn)題(是否是垃圾郵件?),你可能更適合使用Hector這個(gè)更小型的資料庫(kù)。
最新的一個(gè)分支(或者某種程度上說(shuō)最令人感興趣的)是Gorgonia。
這個(gè)機(jī)器學(xué)習(xí)資料庫(kù)完全是用Go語(yǔ)言編寫(xiě)而成,據(jù)其開(kāi)發(fā)者“chewxy”稱能“提供動(dòng)態(tài)建立神經(jīng)網(wǎng)絡(luò)及相關(guān)算法必需條件。”
關(guān)鍵在于“動(dòng)態(tài)”。和之前的機(jī)器學(xué)習(xí)資料庫(kù)Theano一樣,Gorgonia允許你使用一系列原始資料庫(kù)中的高階術(shù)語(yǔ)來(lái)描述神經(jīng)網(wǎng)絡(luò)的行為。TensorFlow資料庫(kù)也使用這種方式,使得開(kāi)發(fā)者不用再親自編寫(xiě)算法,也不用再提交那些能在不同項(xiàng)目中重復(fù)使用的項(xiàng)目。
為什么使用Go語(yǔ)言來(lái)編寫(xiě)這個(gè)機(jī)器學(xué)習(xí)項(xiàng)目Gorgonia?
其開(kāi)發(fā)者在接受采訪中提到:“我寫(xiě)Gorgonia其中一個(gè)原因是我曾經(jīng)花費(fèi)太久的時(shí)間嘗試云端中部署Theano(大約在兩年前)。”
總結(jié):一個(gè)純粹的Go語(yǔ)言解決方案,這意味著需要從其他編寫(xiě)語(yǔ)言中打包并將其糅合到一起的部分更少了。但是擁有這些Go語(yǔ)言資料庫(kù)的主要優(yōu)勢(shì)并不在于部署,而是在于開(kāi)發(fā)者的便利度。未來(lái)的機(jī)器學(xué)習(xí)開(kāi)發(fā)者將有許多種開(kāi)發(fā)語(yǔ)言可供選擇,同時(shí)也意味著現(xiàn)在的Go語(yǔ)言開(kāi)發(fā)者如果想要往機(jī)器學(xué)習(xí)專家方向發(fā)展的話也可以輕松一點(diǎn)。
Via infoworld
PS : 本文由雷鋒網(wǎng)獨(dú)家編譯,未經(jīng)許可拒絕轉(zhuǎn)載!
相關(guān)閱讀:
這10個(gè)小工具 將引爆機(jī)器學(xué)習(xí)DIY潮流
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。