本文介紹了包括 Python、Java、Haskell等在內(nèi)的一系列編程語言的深度學(xué)習(xí)庫。
Python
- Theano是一種用于使用數(shù)列來定義和評估數(shù)學(xué)表達(dá)的 Python 庫。它可以讓 Python 中深度學(xué)習(xí)算法的編寫更為簡單。很多其他的庫是以 Theano 為基礎(chǔ)開發(fā)的。
- Caffe是一種以表達(dá)清晰、高速和模塊化為理念建立起來的深度學(xué)習(xí)框架。它是由伯克利視覺和學(xué)習(xí)中心(BVLC)和網(wǎng)上社區(qū)貢獻(xiàn)者共同開發(fā)的。谷歌的 DeepDream 人工智能圖像處理程序正是建立在 Caffe 框架之上。這個框架是一個 BSD 許可的帶有 Python 接口的 C++庫。
- nolearn包含大量其他神經(jīng)網(wǎng)絡(luò)庫中的包裝器和抽象(wrappers and abstractions),其中最值得注意的是 Lasagne,其中也包含一些機(jī)器學(xué)習(xí)的實(shí)用模塊。
- Genism是一個部署在 Python 編程語言中的深度學(xué)習(xí)工具包,用于通過高效的算法處理大型文本集。
- Chainer連接深度學(xué)習(xí)中的算法與實(shí)現(xiàn),它強(qiáng)勁、靈活而敏銳,是一種用于深度學(xué)習(xí)的靈活的框架。
- deepnet是一種基于 GPU 的深度學(xué)習(xí)算法的 Python 實(shí)現(xiàn),比如:前饋神經(jīng)網(wǎng)絡(luò)、受限玻爾茲曼機(jī)、深度信念網(wǎng)絡(luò)、自編碼器、深度玻爾茲曼機(jī)和卷積神經(jīng)網(wǎng)絡(luò)。
- Hebel是一個在 Python 中用于帶有神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)的庫,它通過 PyCUDA 使用帶有 CUDA 的 GPU 加速。它可實(shí)現(xiàn)大多數(shù)目前最重要的神經(jīng)網(wǎng)絡(luò)模型,提供了多種不同的激活函數(shù)和訓(xùn)練方式,如動量,Nesterov 動量,退出(dropout)和 前期停止(early stopping)。
- CXXNET是一種快速,簡明的分布式深度學(xué)習(xí)框架,它以 MShadow 為基礎(chǔ)。它是輕量級可擴(kuò)展的 C++/CUDA 神經(jīng)網(wǎng)絡(luò)工具包,同時(shí)擁有友好的 Python/Matlab 界面,可供機(jī)器學(xué)習(xí)的訓(xùn)練和預(yù)測使用。
- DeepPy是一種建立在 Mumpy 之上的 Python 化的深度學(xué)習(xí)框架。
- DeepLearning是一個用 C++和 Python 開發(fā)的深度學(xué)習(xí)庫。
C++
- eblearn是一個機(jī)器學(xué)習(xí)的開源 C++庫,由紐約大學(xué)機(jī)器學(xué)習(xí)實(shí)驗(yàn)室的 Yann LeCun 牽頭研發(fā)。尤其是,按照 GUI、演示和教程來部署的帶有基于能量的模型的卷積神經(jīng)網(wǎng)絡(luò)。
- SINGA被設(shè)計(jì)用來進(jìn)行已有系統(tǒng)中分布式訓(xùn)練算法的普通實(shí)現(xiàn)。它由 Apache Software Foundation 提供支持。
Java
- N-Dimensional Arrays for Java (ND4J)是一種為 JVM 設(shè)計(jì)的科學(xué)計(jì)算庫。它們被應(yīng)用在生產(chǎn)環(huán)境中,這就意味著路徑被設(shè)計(jì)成可以最小的 RAM 內(nèi)存需求來快速運(yùn)行。
- Deeplearning4j是第一個為 Java 和 Scala 編寫的消費(fèi)級開元分布式深度學(xué)習(xí)庫。它被設(shè)計(jì)成在商業(yè)環(huán)境中使用,而非研究工具。
- Encog是一種先進(jìn)的機(jī)器學(xué)習(xí)框架,支持支持向量機(jī)(Support Vector Machines),人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks),基因編程(Genetic Programming),貝葉斯網(wǎng)絡(luò)(Bayesian Networks),隱馬爾科夫模型(Hidden Markov Models)和 遺傳算法(Genetic Algorithms)。
Lua
- Torch是一種科學(xué)計(jì)算框架,可支持多種計(jì)算機(jī)學(xué)習(xí)算法。
Haskell
- DNNGraph是一個用 Haskell 編寫的深度神經(jīng)網(wǎng)絡(luò)生成 DSL。
.NET
- Accord.NET是一種.NET 機(jī)器學(xué)習(xí)框架,包含聲音和圖像處理庫,它完全由 C# 編寫。它是一種為開發(fā)生產(chǎn)級的計(jì)算機(jī)視覺、計(jì)算機(jī)聽覺、信號處理和統(tǒng)計(jì)應(yīng)用而設(shè)計(jì)的完整框架。
R
- darch包可以用于建立多層神經(jīng)網(wǎng)絡(luò)(深層結(jié)構(gòu))。其中的訓(xùn)練方式包括使用對比發(fā)散法進(jìn)行提前訓(xùn)練,或使用通常的訓(xùn)練方法(如反向傳播和共軛梯度)進(jìn)行一些微調(diào)。
- deepnet實(shí)現(xiàn)了一些深度學(xué)習(xí)架構(gòu)和神經(jīng)網(wǎng)絡(luò)算法,包括 BP、RBM、DBN、深度自編碼器等等。