人工智慧已經存在了很長時間。 然而,由于該領域的巨大改進,近年來它已成為流行語。 人工智慧曾經被稱為總體書呆子和天才的領域,但由于各種庫和框架的發展,它已成為一個更友好的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,谷歌,雅虎,蘋果和微軟這樣的大公司將這些庫中的一些用于深度學習和機器學習項目,國內的程序員們也趕緊加油學習起來吧!
留言列表