本文總結(jié)了Python、Matlab、CPP、Java、JavaScript、Lua、Julia、Lisp、Haskell、.NET、R等語言的深度學習庫,趕緊收藏吧!
Python
1. Theano是一個python類庫,用數(shù)組向量來定義和計算數(shù)學表達式。它使得在Python環(huán)境下編寫深度學習算法變得簡單。在它基礎之上還搭建了許多類庫。
1.Keras是一個簡潔、高度模塊化的神經(jīng)網(wǎng)絡庫,它的設計參考了Torch,用Python語言編寫,支持調(diào)用GPU和CPU優(yōu)化后的Theano運算。
2.Pylearn2是一個集成大量深度學習常見模型和訓練算法的庫,如隨機梯度下降等。它的功能庫都是基于Theano之上。
3.Lasagne是一個搭建和訓練神經(jīng)網(wǎng)絡的輕量級封裝庫,基于Theano。它遵循簡潔化、透明化、模塊化、實用化和專一化的原則。
4.Blocks也是一個基于Theano的幫助搭建神經(jīng)網(wǎng)絡的框架。
2. Caffe是深度學習的框架,它注重于代碼的表達形式、運算速度以及模塊化程度。它是由伯克利視覺和學習中心(Berkeley Vision and Learning Center, BVLC)以及社區(qū)成員共同開發(fā)。谷歌的DeepDream項目就是基于Caffe框架完成。這個框架是使用BSD許可證的C++庫,并提供了Python調(diào)用接口。
3. nolearn囊括了大量的現(xiàn)有神經(jīng)網(wǎng)絡函數(shù)庫的封裝和抽象接口、大名鼎鼎的Lasagne以及一些機器學習的常用模塊。
4. Genism也是一個用Python編寫的深度學習小工具,采用高效的算法來處理大規(guī)模文本數(shù)據(jù)。
5. Chainer在深度學習的理論算法和實際應用之間架起一座橋梁。它的特點是強大、靈活、直觀,被認為是深度學習的靈活框架。
6. deepnet是基于GPU的深度學習算法函數(shù)庫,使用Python語言開發(fā),實現(xiàn)了前饋神經(jīng)網(wǎng)絡(FNN)、受限玻爾茲曼機(RBM)、深度信念網(wǎng)絡(DBN)、自編碼器(AE)、深度玻爾茲曼機(DBM)和卷積神經(jīng)網(wǎng)絡(CNN)等算法。
7. Hebel也是深度學習和神經(jīng)網(wǎng)絡的一個Python庫,它通過pyCUDA控制支持CUDA的GPU加速。它實現(xiàn)了最重要的幾類神經(jīng)網(wǎng)絡模型,提供了多種激活函數(shù)和模型訓練方法,例如momentum、Nesterov momentum、dropout、和early stopping等方法。
8. CXXNET是一個基于MShadow開發(fā)的快速、簡潔的分布式深度學習框架。它是一個輕量級、易擴展的C++/CUDA神經(jīng)網(wǎng)絡工具箱,提供友好的Python/Matlab接口來進行訓練和預測。
9. DeepPy是基于NumPy的深度學習框架。
10. DeepLearning是一個用C++和Python共同開發(fā)的深度學習函數(shù)庫。
11. Neon是Nervana System 的深度學習框架,使用Python開發(fā)。
相關鏈接:從Theano到Lasagne:基于Python的深度學習的框架和庫
Matlab
1. ConvNet 卷積神經(jīng)網(wǎng)絡是一類深度學習分類算法,它可以從原始數(shù)據(jù)中自主學習有用的特征,通過調(diào)節(jié)權(quán)重值來實現(xiàn)。
2. DeepLearnToolBox是用于深度學習的Matlab/Octave工具箱,它包含深度信念網(wǎng)絡(DBN)、棧式自編碼器(stacked AE)、卷積神經(jīng)網(wǎng)絡(CNN)等算法。
3. cuda-convet是一套卷積神經(jīng)網(wǎng)絡(CNN)代碼,也適用于前饋神經(jīng)網(wǎng)絡,使用C++/CUDA進行運算。它能對任意深度的多層神經(jīng)網(wǎng)絡建模。只要是有向無環(huán)圖的網(wǎng)絡結(jié)構(gòu)都可以。訓練過程采用反向傳播算法(BP算法)。
4. MatConvNet是一個面向計算機視覺應用的卷積神經(jīng)網(wǎng)絡(CNN)Matlab工具箱。它簡單高效,能夠運行和學習最先進的機器學習算法。
CPP
1. eblearn是開源的機器學習C++封裝庫,由Yann LeCun主導的紐約大學機器學習實驗室開發(fā)。它用基于能量的模型實現(xiàn)卷積神經(jīng)網(wǎng)絡,并提供可視化交互界面(GUI)、示例以及示范教程。
2. SINGA是Apache軟件基金會支持的一個項目,它的設計目標是在現(xiàn)有系統(tǒng)上提供通用的分布式模型訓練算法。
3. NVIDIA DIGITS是用于開發(fā)、訓練和可視化深度神經(jīng)網(wǎng)絡的一套新系統(tǒng)。它把深度學習的強大功能用瀏覽器界面呈現(xiàn)出來,使得數(shù)據(jù)科學家和研究員可以實時地可視化神經(jīng)網(wǎng)絡行為,快速地設計出最適合數(shù)據(jù)的深度神經(jīng)網(wǎng)絡。
4. Intel® Deep Learning Framework提供了Intel®平臺加速深度卷積神經(jīng)網(wǎng)絡的一個統(tǒng)一平臺。
Java
1. N-Dimensional Arrays for Java (ND4J) 是JVM平臺的科學計算函數(shù)庫。它主要用于產(chǎn)品中,也就是說函數(shù)的設計需求是運算速度快、存儲空間最省。
2. Deeplearning4j 是第一款商業(yè)級別的開源分布式深度學習類庫,用Java和Scala編寫。它的設計目的是為了在商業(yè)環(huán)境下使用,而不是作為一款研究工具。
3. Encog是一個機器學習的高級框架,涵蓋支持向量機、人工神經(jīng)網(wǎng)絡、遺傳編程、貝葉斯網(wǎng)絡、隱馬可夫模型等,也支持遺傳算法。