人工智能已經存在很長時間了。然而,由于這一領域的巨大進步,近年來它已成為一個流行語。人工智能曾經被稱為是屬于書呆子和天才的領域,但由于各種庫和框架的發展,它已經成為一個相對“友好”的IT領域,并且已經有很多人參與其中。
在這篇文章中,我們將研究用于人工智能的優質庫,它們的優缺點以及一些特征。讓我們潛入并探索這些人工智能庫的世界!
1. TensorFlow
“使用數據流圖計算可伸縮機器學習”。
語言:C ++或Python。
當初步接觸AI時,你可能會聽到的第一個框架就是Google的TensorFlow。
TensorFlow是一個使用數據流圖進行數值計算的開源軟件。這個框架以擁有允許在任何CPU或GPU上進行計算的架構而聞名,無論是臺式機、服務器還是移動設備。這個框架在Python編程語言中是可用的。
TensorFlow通過稱為節點的數據層進行排序,并根據所獲得的信息做出決定。
優點:
·使用易于學習的語言(Python)。
·使用計算圖抽象。
·用于可視化的TensorBoard的可用性。
缺點:
·這很慢,因為Python不是語言中最快的。
·缺乏許多預先訓練的模型。
·不完全開源。
2.微軟的CNTK
“開源深度學習工具包”。
語言:C ++。
我們可以稱之為微軟對Google的TensorFlow的回應。
微軟的計算網絡工具包是一個提高計算網絡模塊化和維護分離計算網絡,提供學習算法和模型描述的庫。
在需要大量服務器進行操作的情況下,CNTK可以同時利用多臺服務器。
據說它的功能與Google的TensorFlow相近; 但是,它的速度更快。
優點:
·這是非常靈活的。
·允許分布式訓練。
·支持C ++,C#,Java和Python。
缺點:
·一種網絡描述語言(NDL)來實現的新的語言。
·缺乏可視化。
3. Theano
“數值計算庫”
語言:Python。
Theano是TensorFlow的強有力競爭者,是一個功能強大的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主要類別:
優點:
Python和MATLAB的綁定可用。
性能強大。
無需編寫代碼即可進行模型訓練。
缺點:
對于復發性網絡不好。
對于新體系架構來說不夠好
5.Keras
“針對人類的深度學習”
語言:Python。
Keras是一個用Python編寫的開源的神經網絡庫。
與TensorFlow、CNTK和Theano不同,Keras不是一個端到端的機器學習框架。
相反,它作為一個接口,提供了一個高層次的抽象,這使得不管它的框架是什么,神經網絡的配置都比較簡單。
谷歌的TensorFlow目前支持Keras作為后端,而微軟的CNTK也會在很短的時間內做到這一點。
優點:
它是用戶友好型。
它很容易擴展。
在CPU和GPU上無縫運行。
與Theano和TensorFlow無縫工作。
缺點:
不能有效地用作獨立的框架。
6.Torch
“一個開源的機器學習庫”
語言:C.
Torch是一個用于科學和數字操作的開源機器學習庫。
這是一個基于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使用。