矽谷IT大牛推薦10種機器學習框架,程序員跳槽漲薪攻略!
人工智慧已經存在了很長時間。 然而,由於該領域的巨大改進,近年來它已成為流行語。 人工智慧曾經被稱為總體書獃子和天才的領域,但由於各種庫和框架的發展,它已成為一個更友好的IT領域,並有很多人進入它。
在本文中,我們將研究用於人工智慧的高質量庫,它們的優缺點以及它們的一些功能。 讓我們潛入並探索這些AI庫的世界!
1. TensorFlow
「使用數據流圖進行計算,實現可擴展的機器學習。」
語言:C ++或Python。
進入AI時,您會聽到的第一個框架是Google的TensorFlow。
TensorFlow是一個開源軟體,用於使用數據流圖進行數值計算。 該框架以具有允許在任何CPU或GPU上進行計算的架構而聞名,無論是桌面,伺服器還是移動設備。 該框架以Python編程語言提供。
TensorFlow對稱為節點的數據層進行排序,並根據獲取的任何信息做出決策。
優點:
使用易於學習的語言(Python)。
使用計算圖形抽象。
TensorBoard可用於可視化。
缺點:
它很慢,因為Python不是最快的語言。
缺乏許多預先訓練過的模型。
不是完全開源的。
如果你想更加了解TensorFlow,或者說想實踐一下人工智慧項目,谷歌的另一款工具或許可以幫到你,也就是谷歌的AIY Projects 項目。
AIY Projects 包含兩款硬體--AIY Voice Kit 和 AIY Vision Kit。其中AIY Vision Kit(視覺套件)是一套簡單的計算機視覺系統,可運行 3 種基於 TensorFlow 的類神經網路模型應用程序。
2. Microsoft CNTK
「一個開源深度學習工具包。」
語言:C ++。
我們可以將此認為是微軟對谷歌TensorFlow的回應。Microsoft的Computational Network ToolKit是一個增強模塊化和維護分離計算網路的庫,提供學習演算法和模型描述。
在需要大量伺服器進行操作的情況下,CNTK可以同時利用許多伺服器。
它據說與谷歌的TensorFlow功能相近; 但是,它有點快。
優點:
它非常靈活。
允許分散式培訓。
支持C ++,C#,Java和Python。
缺點:
它以新語言網路描述語言(NDL)實現。
缺乏可視化。
3. Theano
「一個數值計算庫。」
語言:Python。
作為TensorFlow的強大競爭對手,Theano是一個功能強大的Python庫,允許涉及具有高效率的多維數組的數值運算。
該庫透明地使用GPU來執行數據密集型計算而不是CPU,從而提高了運算效率。
出於這個原因,Theano已被用於為大規模計算密集型操作提供動力大約十年。
然而,2017年9月宣布,Theano的主要開發項目將在2017年11月發布的1.0版本發布後停止。
這並不意味著它在任何方面都是一個功能較弱的庫。 您仍然可以隨時使用它進行深度學習研究。
優點:
針對CPU和GPU進行了適當優化。
高效的數字任務。
缺點:
與其他庫相比,原始Theano略低。
需要與其他庫一起使用才能獲得高級抽象。
AWS上有點兒bug多。
4. Caffe
「快速,開放的深度學習框架。」
語言:C ++。
Caffe是一個強大的深度學習框架。
與此列表中的其他框架一樣,它對於深度學習研究來說非常快速有效。
使用Caffe,您可以非常輕鬆地構建用於圖像分類的卷積神經網路(CNN)。 Caffe在GPU上工作得很好,這有助於它在運營期間的速度。 查看主頁以獲取更多信息。
Caffe主要class:
優點:
可以使用Python和MATLAB的綁定。
很好的表現;很好的績效。
允許在不編寫代碼的情況下訓練模型。
缺點:
經常性網路不好。
新架構並不是很好。
5. Keras
「深入學習人類。」
語言:Python。
Keras是一個用Python編寫的開源神經網路庫。
與TensorFlow,CNTK和Theano不同,Keras並不是一個端到端的機器學習框架。
相反,它充當介面並提供高級抽象,這使得無論其所處的框架如何,都可以輕鬆配置神經網路。
谷歌的TensorFlow目前支持Keras作為後端,微軟的CNTK將在很短的時間內完成相同的工作。
優點:
它用戶友好。
它很容易擴展。
在CPU和GPU上無縫運行。
與Theano和TensorFlow無縫協作。
缺點:
無法有效地用作獨立框架。
6. Torch
「一個開源機器學習庫。」
語言:C
Torch是一個用於科學和數值運算的開源機器學習庫。
這是一個基於 - 不,不是Python - Lua編程語言的庫。
通過提供大量演算法,它可以使深度學習研究更容易,並提高效率和速度。 它具有強大的N維數組,有助於切片和索引等操作。 它還提供線性代數常式和神經網路模型。
優點:
非常靈活。
高水平的速度和效率。
提供大量預先訓練的模型。
缺點:
文件不清楚。
缺少即插即用代碼,可立即使用。
它基於一種不那麼流行的語言Lua。
7. Accord.NET
「用於.NET的機器學習,計算機視覺,統計和通用科學計算。」
語言:C#。
這是C#程序員的一個選項。
Accord.NET框架是一個.NET機器學習框架,可以輕鬆實現音頻和圖像處理。
該框架可以有效地處理數值優化,人工神經網路甚至可視化。 除此之外,Accord.NET在計算機視覺和信號處理方面也很強大,並且可以輕鬆實現演算法。
優點:
它擁有一支龐大而活躍的開發團隊。
非常好的文檔框架。
質量可視化。
缺點:
不是一個非常流行的框架。
與TensorFlow相比較慢。
8. Spark MLlib
「可擴展的機器學習庫。」
語言:Scala。
Apache的Spark MLlib是一個可擴展的機器學習庫。
它非常適用於Java,Scala,Python甚至R等語言。它非常高效,因為它可以與庫Python和R庫中的numpy進行互操作。
MLlib可以輕鬆插入Hadoop工作流程。 它提供機器學習演算法,如分類,回歸和聚類。
在處理大規模數據時,這個功能強大的庫非常快。
優點:
對於大規模數據來說非常快。
有多種語言版本。
缺點:
陡峭的學習曲線。
即插即用僅適用於Hadoop。
9. Sci-kit Learn
「Python中的機器學習。」
語言:Python。
Sci-kit learn是一個非常強大的機器學習Python庫,主要用於構建模型。
使用其他庫(如numpy,SciPy和matplotlib)構建,對於統計建模技術(如分類,回歸和聚類)非常有效。
Sci-kit learn具有監督學習演算法,無監督學習演算法和交叉驗證等功能。
優點:
許多主要演算法的可用性。
高效的數據挖掘。
缺點:
不是建造模型的最佳選擇。
使用GPU效率不高。
10. MLPack
「可擴展的C ++機器學習庫。」
語言:C ++。
MLPack是一個用C ++實現的可擴展的機器學習庫。 因為它是用C ++編寫的,所以你可以猜測它對於內存管理很有用。
MLPack以極快的速度運行,因為高質量的機器學習演算法與庫一起出現。 該庫對新手友好,並提供簡單的API供使用。
優點:
非常可擴展。
Python和C ++綁定可用。
缺點:
不是最好的文檔。
總結:
像Facebook,谷歌,雅虎,蘋果和微軟這樣的大公司將這些庫中的一些用於深度學習和機器學習項目,國內的程序員們也趕緊加油學習起來吧!
※為了讓樹莓派能「看見」大千世界,谷歌發布了一個AI項目!
※老鐵666!Google把大學實驗室搬上了VR!
TAG:引力空間站 |