1
| 本文作者: 李尊 | 2016-09-20 18:41 |
導讀:Go又稱Golang,是Google開發的一種靜態強類型、編譯型、并發型且具有垃圾回收功能的編程語言。Go語言于2009年11月正式宣布推出并開放源代碼,開始在Linux及Mac OS X平臺上進行了實現,后追加Windows系統下的實現。

大部分用過Go語言的人都認可其是一種非常不錯的生產力工具,有人總結其優點如下:
部署簡單
并發性好
語言設計良好
執行性能好
目前也有許多使用Go語言開發的成功項目,包括:nsq、docker、packer、skynet、Doozer、Heka、cbfs、tsuru、groupcache、god、gor等。鑒于其成功經驗,有開發者想用Go語言來進行機器學習項目的開發。現在有一個好消息,對于想要使用Go語言作為開發平臺的機器學習開發者來說,有越來越多的項目可以去進行選擇了,雖然還是不多。
與其使用其他編程語言(主要是C/C++)編寫的資料庫,開發者現在能直接使用完全用Go語言編寫的工具包展開工作了。現有的用其他語言編寫的機器學習資料庫雖然有很多的用戶以及其特有文化,但是很多人對利用Go語言工具的便利特性也十分有興趣。
下面我們來了解幾個主要的Go語言機器學習項目:

GoLearn是自稱“內置電池”的機器學習資料庫,絕對是首選項之一。
作者在項目描述中提到——簡潔、易定制是其追求的目標。GoLearn中一些接口使用的數據處理方式和scikit-learn(一個非常流行的Python機器學習項目)是非常相似的。想要逃離Python的用戶應該可以用它做一些短期的工作。其中另外還有一些使用C++構筑的線性模型資料庫,但是其他的全是Go語言編寫的。GoLearn實現了熟悉的Scikit-learn 適應/預測界面,可實現快速預估測試和交換。GoLearn是一個成熟的項目,它提供了交叉驗證和訓練/測試等輔助功能。
Goml

Goml自詡為“在線Golang機器學習工具”,據其開發者所言意思是其“包含了許多工具,能讓你以在線方式學習其頻道的數據內容。”這個項目之所以突出是因為其強調了其作為其他應用一部分存在的可能性,使得構筑“綜合測試、大量文檔以及簡潔、高效、模塊化的源代碼”更加容易些了。但是如果你需要的知識解決基礎的二元分類問題(是否是垃圾郵件?),你可能更適合使用Hector這個更小型的資料庫。

最新的一個分支(或者某種程度上說最令人感興趣的)是Gorgonia。
這個機器學習資料庫完全是用Go語言編寫而成,據其開發者“chewxy”稱能“提供動態建立神經網絡及相關算法必需條件。”
關鍵在于“動態”。和之前的機器學習資料庫Theano一樣,Gorgonia允許你使用一系列原始資料庫中的高階術語來描述神經網絡的行為。TensorFlow資料庫也使用這種方式,使得開發者不用再親自編寫算法,也不用再提交那些能在不同項目中重復使用的項目。
為什么使用Go語言來編寫這個機器學習項目Gorgonia?
其開發者在接受采訪中提到:“我寫Gorgonia其中一個原因是我曾經花費太久的時間嘗試云端中部署Theano(大約在兩年前)。”
總結:一個純粹的Go語言解決方案,這意味著需要從其他編寫語言中打包并將其糅合到一起的部分更少了。但是擁有這些Go語言資料庫的主要優勢并不在于部署,而是在于開發者的便利度。未來的機器學習開發者將有許多種開發語言可供選擇,同時也意味著現在的Go語言開發者如果想要往機器學習專家方向發展的話也可以輕松一點。
Via infoworld
PS : 本文由雷鋒網獨家編譯,未經許可拒絕轉載!
相關閱讀:
雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知。