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