十大流行AI框架和庫的優缺點比較
摘要:不知道自己應該選用那個AI框架和庫?看看本文就行了,本文為AI開發的工程師們梳理了現在最流行的框架,並簡單的分析了它們的優缺點。
人工智慧已經存在很長時間,然而,由於這一領域的巨大發展,近年來它已成為一個流行語。人工智慧曾經被稱為一個書獃子和天才領域,但由於各種庫和框架的發展,它已成為一個友好的IT領域,更多的人開始了他們的人工智慧之旅。
在這篇文章中,我們將研究人工智慧的高質量庫的優點和缺點,以及它們的一些特點。
1. TensorFlow
「使用數據流圖計算進行機器學習」
語言:C ++或Python。
當你進入AI時,你會聽到的第一個框架之一就是Google的TensorFlow。TensorFlow是一個使用數據流圖進行數值計算的開源框架。這個框架被稱為具有允許在任何CPU或GPU上進行計算的架構,無論是台式機,伺服器還是移動設備,另外這個框架在Python編程語言中是可用的,這也是Python大火的原因。
TensorFlow是通過稱為節點的數據層進行排序,並根據獲得的信息做出決定。這是它的官網!
優點:
使用易於學習的語言(Python)。
使用計算圖抽象。
可以使用可視化的TensorBoard。
缺點:
它很慢,因為Python不是編程語言中最快的。
缺乏許多預先訓練的模型。
不完全開源。
2.CNTK
「開源深度學習工具包」。
語言:C ++。
我們可以稱之為它是微軟對Google的TensorFlow的回應。
微軟的CNTK是一個增強分離計算網路模塊化和維護的庫,它提供了學習演算法和模型描述。在需要大量伺服器進行操作的情況下,CNTK可以同時利用多台伺服器。
據說它的功能與Google的TensorFlow相近,但是,它更快,在這裡了解更多。
優點:
非常靈活。
允許分散式培訓。
支持C ++,C#,Java和Python。
缺點:
它以一種新的語言——Network Description Language(NDL)來實現。
缺乏可視化。
3. Theano
「數值計算庫」
語言:Python。
Theano是TensorFlow的強有力競爭者,它是一個功能強大的Python庫,允許以高效率的方式進行多維數組的數值操作。
該庫透明地使用GPU來執行數據密集型計算而不是CPU,因此操作效率很高。出於這個原因,Theano已經被用於為大規模的計算密集型操作長達十年的時間。然而,於二零一七年九月,Theano的1.0版本停止。
但這並不意味著它不再是一個強大的圖書館,你仍然可以隨時進行深入的學習研究,在這裡了解更多。
優點:
優化CPU和GPU。
有效的計算任務。
缺點:
與其他庫相比,原生Theano有點低級。
需要與其他庫一起使用以獲得高度的抽象。
AWS使用它上有點bug。
4. Caffe
「快速,開放的深度學習框架」
語言:C ++。
Caffe是一個強大的深度學習框架,像這個清單上的其他框架一樣,深度學習的研究速度非常快。
藉助Caffe,你可以非常輕鬆地構建用於圖像分類的卷積神經網路(CNN)。Caffe在GPU上運行的也很不錯,這有助於在運行期間提高速度。查看主頁獲取更多信息。
Caffe主類:
優點:
Python和MATLAB都可用。
表現的很好。
無需編寫代碼即可進行模型的訓練。
缺點:
對於RNN網路不太友好。
對於新體系結構不太友好。
5. Keras
「為人類普及深度學習」
語言:Python。
Keras是一個用Python編寫的開源的神經網路庫。與TensorFlow,CNTK和Theano不同,Keras並不意味著是一個端到端的機器學習框架。
相反,它作為一個介面,提供了一個高層次的抽象,這使得神經網路的配置變得簡單,無論它坐在哪個框架上。
谷歌的TensorFlow目前支持Keras作為後端,而微軟的CNTK也會在很短的時間內做到這一點。在這裡了解更多。
優點:
它對用戶非常友好。
它很容易擴展。
在CPU和GPU上無縫運行。
與Theano和TensorFlow無縫工作。
缺點:
不能有效地用作獨立的框架。
6.Torch
「一個開源的機器學習庫」
語言:C.
Torch是一個用於科學和數字操作的開源機器學習庫。
這是一個基於Lua編程語言的庫而不是Python。
它通過提供大量的演算法,使得深度學習研究更容易,並且提高了效率和速度。它有一個強大的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學習
「用Python進行機器學習」
語言:Python。
Sci-kit learn是一個非常強大的機器學習Python庫,主要用於構建模型。
使用numpy,SciPy和matplotlib等其他庫構建,對統計建模技術(如分類,回歸和聚類)非常有效。
優點:
許多主要演算法的可用性很高。
能夠進行有效的數據挖掘。
缺點:
不是創建模型的最佳選擇。
GPU效率不高。
10. MLPack
「可擴展的C ++機器學習庫」
語言:C ++。
MLPack是一個用C ++實現的可擴展的機器學習庫,因為它是用C ++編寫的,所以你可以猜測到它對於內存管理的非常好。
MLPack以極高的速度運行,可以支持高質量的機器學習演算法與庫一起運行。這個庫對新手是友好的,它還提供了一個簡單的API幫助新手使用。官網可以查看。
優點:
非常容易擴展。
Python和C ++都可用。
缺點:
沒有具體的參考資料。
TAG:AI講堂 |