深度學習框架(分語言總結)
以下列舉了基於10種語言實現的30餘種機器學習/深度學習框架,其中比較常用的有Theano、Keras、Caffe、TensorFlow等。
Python
Theano 是一種用於使用數列來定義和評估數學表達的 Python 庫。它可以讓 Python 中深度學習演算法的編寫更為簡單。很多其他的庫是以 Theano 為基礎開發的:
Caffe 是一種以表達清晰、高速和模組化為理念建立起來的深度學習框架。它是由伯克利視覺和學習中心(BVLC)和網上社群貢獻者共同開發的。谷歌的 DeepDream 人工智慧影象處理程式正是建立在 Caffe 框架之上。這個框架是一個 BSD 許可的帶有 Python 介面的 C++庫。
nolearn 包含大量其他神經網路庫中的包裝器和抽象(wrappers and abstractions),其中最值得注意的是 Lasagne,其中也包含一些機器學習的實用模組。
Genism 是一個部署在 Python 程式語言中的深度學習工具包,用於通過高效的演算法處理大型文字集。
Chainer 連線深度學習中的演算法與實現,它強勁、靈活而敏銳,是一種用於深度學習的靈活的框架。
deepnet 是一種基於 GPU 的深度學習演算法的 Python 實現,比如:前饋神經網路、受限玻爾茲曼機、深度信念網路、自編碼器、深度玻爾茲曼機和卷積神經網路。
Hebel 是一個在 Python 中用於帶有神經網路的深度學習的庫,它通過 PyCUDA 使用帶有 CUDA 的 GPU 加速。它可實現大多數目前最重要的神經網路模型,提供了多種不同的啟用函式和訓練方式,如動量,Nesterov 動量,退出(dropout)和 前期停止(early stopping)。
CXXNET 是一種快速,簡明的分散式深度學習框架,它以 MShadow 為基礎。它是輕量級可擴充套件的 C++/CUDA 神經網路工具包,同時擁有友好的 Python/Matlab 介面,可供機器學習的訓練和預測使用。
DeepPy 是一種建立在 Mumpy 之上的 Python 化的深度學習框架。
DeepLearning 是一個用 C++和 Python 開發的深度學習庫。
- Neon 是 Nervana 公司基於 Python 開發的深度學習框架。
C++
eblearn 是一個機器學習的開源 C++庫,由紐約大學機器學習實驗室的 Yann LeCun 牽頭研發。尤其是,按照 GUI、演示和教程來部署的帶有基於能量的模型的卷積神經網路。
SINGA 被設計用來進行已有系統中分散式訓練演算法的普通實現。它由 Apache Software Foundation 提供支援。
NVIDIA DIGITS 是一個新的用於開發、訓練和視覺化神經網路系統。它把深度學習放進了基於瀏覽器的介面中,讓資料分析師和研究人員可以快速設計最好的深度學習神經網路(DNN)來獲取實時的網路行為視覺化資料。
Java
N-Dimensional Arrays for Java (ND4J) 是一種為 JVM 設計的科學計算庫。它們被應用在生產環境中,這就意味著路徑被設計成可以最小的 RAM 記憶體需求來快速執行。
Deeplearning4j 是第一個為 Java 和 Scala 編寫的消費級開源分散式深度學習庫。它被設計成在商業環境中使用,而非研究工具。
- Encog 是一種先進的機器學習框架,支援支援向量機(Support Vector Machines),人工神經網路(Artificial Neural Networks),基因程式設計(Genetic Programming),貝葉斯網路(Bayesian Networks),隱馬爾科夫模型(Hidden Markov Models)和 遺傳演算法(Genetic Algorithms)。
JavaScript
- Convent.js 是一種 Javascript 中用於深度學習模型(主要是神經網路)的庫。完全在瀏覽器中使用,不需要開發工具,不需要編譯器,不需要安裝,也不需要 GPU 的支援,簡單易用。
Lua
- Torch 是一種科學計算框架,可支援多種計算機學習演算法。
Julia
- Mocha 用於 Julia 的一種深度學習框架,其靈感來源於 C++框架 Caffe。在 Mocha 中通用的隨機梯度求解器和公共層的有效實現可以被用於訓練深度/淺層(卷積)神經網路,其帶有通過(堆疊的)自動解碼器的(可選的)無監督的預訓練。其最大特點包括:帶有模組化架構、 高層面的介面、便攜性與速度、相容性等等。
Lisp
- Lush(Lisp Universal Shell)是一種為研究人員、試驗者以及對大規模數值和圖形應用感興趣的工程師設計的、面向物件的程式語言。它帶有豐富的作為機器學習庫一部分的深度學習庫。
Haskell
- DNNGraph 是一個用 Haskell 編寫的深度神經網路生成 DSL。
.NET
- Accord.NET 是一種.NET 機器學習框架,包含聲音和影象處理庫,它完全由 C#編寫。它是一種為開發生產級的計算機視覺、計算機聽覺、訊號處理和統計應用而設計的完整框架。