現在,小編將介紹那些用于 AI 開發的高質量庫,并談談它們的優缺點,以及特性。 現在,讓我們進入并探索 AI 庫的世界吧。
1. TensorFlow
“使用數據流程圖對可拓展的機器學習進行計算”
初接觸 AI 時,你聽說的首批框架應該包含了谷歌的 TensorFlow。 TensorFlow 是一個使用數據流程圖進行數值計算的開源軟件。這個不錯的框架因其架構而聞名,它允許在任何 CPU 或 GPU 上進行計算,不管是桌面、服務器,還是移動設備。它可在 Python 編程語言中使用。 TensorFlow 主要是通過數據層進行排序,而我們可以調用節點,并根據所得到的信息進行決策。
使用簡單易學的語言,如 Python。
使用計算圖進行抽象。
可以使用 TensorBoard 獲得可視化。
缺點:
運行速度慢,因為 Python 不是快的語言。
缺乏許多預訓練的模型。
不完全開源。
2. Microsoft CNTK
“開源的深度學習工具包”
我們是否可以將它看作是微軟對谷歌 TensorFlow 的回應? 微軟的 CNTK(計算網絡工具包)是一個用來增強模塊化和保持計算網絡分離的庫,提供學習算法和模型描述。 在需要大量服務器進行計算的情況下,CNTK 可以同時利用多臺服務器。 據說 CNTK 在功能上接近谷歌的 TensorFlow,但速度比對方要快一些。
高度靈活。
允許分布式訓練。
支持 C++、C#、Java 和 Python。
缺點:
它由一種新的語言——NDL(網絡描述語言)實現。
缺乏可視化。
3. Theano
“數值計算庫”
作為 TensorFlow 的強有力競爭對手,Theano 是一個強大的 Python 庫,它允許使用高效多維數組進行數值計算。 它不使用 CPU,而是透明地使用 GPU,用于數據密集型計算,所以效率很高。 因此,在大約 10 年內,Theano 一直被用于大規模的數據密集型計算。 然而,在 2017 年 9 月 28 日當日,開發團隊宣稱,將在 2017 年 11 月 15 日發布 1.0 版后,停止對它的主要開發。 但這并沒有削弱它的強大實力,你仍可以使用它,隨時進行深入學習的研究。
對 CPU 和 GPU 進行了適當優化。
高效的數值計算任務。
缺點:
與其他庫相比,原始的 Theano 有點兒低級。
需要與其他庫一起使用,以獲得較的抽象。
在 AWS 上使用有點小 Bug。
4. Caffe
“應對深入學習的快速開放架構”
Caffe 是一個強大的深度學習框架。 和這個列表中的其他框架一樣,它對于深入學習的研究而言,是非??焖俸陀行У?。 使用 Caffe,你可以輕易地構建一個用于圖像分類的 CNN(卷積神經網絡)。它在 GPU 上運行良好,運行速度非??臁?/span>
可以與 Python 和 MATLAB 綁定使用。
高性能。
無需編寫代碼,即可訓練模型。
缺點:
對遞歸網絡支持不好。
對新架構來說不是很好。
5. Keras
“針對人類的深度學習”
Keras 是一個用 Python 編寫的開源神經網絡庫。 不似 TensorFlow、CNTK、Theano、Keras 這種端到端(End-to-End)的機器學習框架, 相反,它是一個接口,提供了高層次的抽象,使得神經網絡的配置變得更加簡單,而不必考慮所在的框架。 谷歌的 TensorFlow 目前支持 Keras 作為后端,而微軟的 CNTK 也將在短時間內獲得支持。
它對用戶友好,易于上手。
高度拓展。
可以在 CPU 或 GPU 上無縫運行。
完美兼容 Theano 和 TensorFlow。
缺點:
不能有效地作為一個獨立的框架來使用。
6. Torch
“開源機器學習庫”
Torch 是一個用于科學計算和數值計算的開源機器學習庫。 它是一個基于 Lua 編程語言(終于不再是 Python)的庫。 通過提供大量算法,使得深入學習的研究更加容易,并提高了效率和速度。它有一個強大的 N 維數組,幫助進行類似切片和索引這樣的計算,并提供線性代數程序和神經網絡模型。
高度靈活。
速度快,效率高。
大量的預訓練模型可用。
缺點:
說明文檔不夠清晰。
缺乏立即使用的即插即用代碼。
它基于一個不怎么流行的編程語言 Lua。
7. Accord . NET
“針對 . NET 的機器學習、計算機視覺、統計學和通用科學計算”
這是為 C# 程序員準備的。 Accord . NET 框架是一個 .NET 機器學習框架,使得音頻和圖像的處理變得更加簡單。 該框架可以有效地解決數值優化、人工神經網絡,甚至給出了可視化的特征。此外,Accord . NET 對計算機視覺和信號處理具有強大的功能,并且易于算法實現。
它擁有一個龐大且活躍的開發團隊。
說明文檔非常不錯。
高質量的可視化。
缺點:
這不是一個非常流行的框架。
與 TensorFlow 相比,速度慢。
8. Spark MLlib
“可擴展的機器學習庫”
Apache 的 Spark MLlib 是一個具有高度拓展性的機器學習庫。 它在 Java、Scala、Python 甚至 R 語言中都非常有用,因為它使用 Python 和 R 中類似 Numpy 這樣的庫,能夠進行高效的交互。 MLlib 可以很容易地插入 Hadoop 工作流程中。它提供了機器學習算法,如分類、回歸、聚類等。 這個強大的庫在處理大規模的數據時,速度非常快。
對于大規模數據處理來說,非???。
可用于多種語言。
缺點:
陡峭的學習曲線。
僅 Hadoop 支持即插即用。
Sci-Kit Learn “Python 中的機器學習”
9. Sci-Kit Learn
“Python 中的機器學習”
Sci-kit learn 是一個針對機器學習的強大 Python 庫,主要用于構建模型。 使用諸如 Numpy、SciPy 和 Matplotlib 等其他庫構建,對于統計建模技術(如分類、回歸、集群等)非常有效。 Sci-Kit learn的特性包括監督式學習算法、非監督式學習算法和交叉驗證。
可以使用許多 shell 算法。
高效的數據挖掘。
缺點:
不是的模型構建庫。
GPU 使用不高效。
10. MLPack
“可擴展的 C++ 機器學習庫”
MLPack 是一個使用 C++ 實現的可擴展的機器學習庫。在 C++ 中,你可以猜到,它的內存管理非常出色。 擁有高質量的機器學習算法與庫,MLPack 的運行速度非???。它對新手十分友好,因為它提供了一個可供使用的簡單 API。
高度拓展。
可以與 Python 和 C++ 綁定。
缺點:
說明文檔不夠清晰。(如果這也算的話)
總結
本文所討論的庫都非常高效,久經時間檢驗,已經是當前無比接近真理的存在了。很多知名企業都在使用這些庫進行深度學習和機器學習項目。
想要了解多的東西那就加入我們吧!