機器學習的爆炸性增長推動了許多開源工具的發展,使得開發人員更容易學習其技術。接下來,我們來看看開發者最喜歡的Java和Python機器學習框架都有哪些?
據技術專家介紹,未來人工智能和機器學習的前景是光明的。所以,如果開發者想學習一門理想的技能,機器學習是很棒的選擇。本文了解了頂級的機器學習庫和開源項目,給出了以下五大優秀框架。(排名不分先后)
Apache Singa
Apache Singa由新加坡國立大學的團隊開發,是一個靈活可擴展的利用大數據分析的深度學習平臺。這個深度學習框架為大量數據的可擴展分布式培訓提供了靈活架構。Singa可擴展以運行各種硬件,主要應用在圖像識別和自然語言處理(NLP)方面。
Singa目前是一個Apache孵化器項目,提供了簡單的編程模型,可以在一個節點集群上工作。分布式深度學習在訓練過程中使用模型劃分和并行化,一般而言,Singa支持傳統的機器學習模型,如邏輯回歸。
Singa是用Java,C ++和Python編寫的,可以在AWS上或通過Docker嘗試使用。
Apache Mahout
Apache的另一個開源產品Apache Mahout是一個分布式線性代數框架,用于創建可擴展的高性能機器學習應用程序,旨在讓數學家,統計學家和數據科學家快速實現算法,Mahout主要關注協同過濾,聚類和分類。
Apache Mahout使程序員能夠在大數據平臺執行的交互式環境中實現數學運算,然后將完全相同的代碼移至應用程序并進行部署。Mahout Samsara提供了一個分布式線性代數和統計引擎,該引擎不僅性能良好,還可與交互式shell(現在位于Apache Zeppelin中)一起分發,可在生產環境中鏈接到應用程序的庫。Mahout通常搭載Apache Hadoop平臺使用map / reduce范例,但這不會限制對基于Hadoop實現的貢獻。
最后,Apache Mahout是用Java和Scala編寫的。
Microsoft Cognitive Toolkit (CNTK)
微軟的認知工具包是一個開源的深度學習工具包,用于訓練機器像人腦一樣學習算法。CNTK使得用戶可以很容易地使用流行的機器學習模型,如feed-forwards DNN,卷積神經網絡和遞歸神經網絡。
這個工具毫無疑問是使用神經網絡處理非結構化數據的大數據集。憑借更短的培訓時間和易于使用的架構,CNTK具有高度可定制性,允許程序員選擇自己的參數,算法和網絡。由于其支持“多機多GPU”,CNTK很容易勝過其競爭對手。如果有興趣,微軟甚至會提供一個介紹視頻。
最后,Microsoft CNTK是用Python和C ++編寫的。
Caffe
由伯克利人工智能研究團隊開發的Caffe是一個由表達式,速度和模塊化組成的深度學習框架。富有表現力的架構鼓勵應用和定制創新,配置選項允許用戶通過設置一個標志在CPU和GPU之間切換。Caffe的可擴展代碼已經幫助推動了它的早期發展,使其成為一個被高度評價的GitHub機器學習項目。
Caffe的速度使其對研究機構和行業部署都非常有價值,它是通過卷積神經網絡(CNN)來開發用于計算機視覺/圖像分類的。Caffe提供一組預先訓練的模型,不需要任何編碼來實現。然而,Caffe最適合于構建應用,并且不是計算機視覺以外的任何其他應用。
最后,Caffe是用C++編寫的有Python接口的機器學習框架。
TensorFlow
最后一個是我們最喜歡的機器學習框架,被稱作無與倫比的TensorFlow框架。 TensorFlow是一個使用數據流圖進行數值計算的開源軟件庫,是GitHub上最受歡迎的機器學習項目,也是參與者和貢獻者最多的機器學習項目。
無論是臺式機,服務器還是手機,TensorFlow靈活的架構都可以使用戶輕松使用單一API將計算部署到一個或多個CPU或GPU。
TensorFlow主要是用Python編寫的,但它也支持Java和Go的一些用法。
結論
在2018年,Python的持續增長肯定與過去幾年機器學習的爆炸式增長有關。一些世界上最受歡迎的ML框架和庫是由Python編寫或主要由Python支持的,包括TensorFlow,Keras,Theano以及sci-kit learn,Chainer,H20,Microsoft Azure Studio,Veles和Neon等小型項目。Python不支持,C ++也支持,比如微軟的CNTK和Caffe。
所以,如果你有興趣學習一些ML技能,或者抓住最新的技術浪潮,那么可能是時候把舊的Python或C ++教科書甩開,開始實踐了。