當前位置:
首頁 > 知識 > 十大流行AI框架和庫的優缺點比較

十大流行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 ++都可用。

缺點:

沒有具體的參考資料。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 AI講堂 的精彩文章:

4名礦工控制50%算力 去中心化是不是謊言?

TAG:AI講堂 |