各种编程语言的深度学习库整理(中英版)
Python
1.?Theano是一個(gè)python類庫,用數(shù)組向量來定義和計(jì)算數(shù)學(xué)表達(dá)式。它使得在Python環(huán)境下編寫深度學(xué)習(xí)算法變得簡(jiǎn)單。在它基礎(chǔ)之上還搭建了許多類庫。
? 1.Keras是一個(gè)簡(jiǎn)潔、高度模塊化的神經(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。它遵循簡(jiǎn)潔化、透明化、模塊化、實(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ā)的快速、簡(jiǎn)潔的分布式深度學(xué)習(xí)框架。它是一個(gè)輕量級(jí)、易擴(kuò)展的C++/CUDA神經(jīng)網(wǎng)絡(luò)工具箱,提供友好的Python/Matlab接口來進(jìn)行訓(xùn)練和預(yù)測(cè)。
9.?DeepPy是基于NumPy的深度學(xué)習(xí)框架。
10.?DeepLearning是一個(gè)用C++和Python共同開發(fā)的深度學(xué)習(xí)函數(shù)庫。
11.?Neon是Nervana?System?的深度學(xué)習(xí)框架,使用Python開發(fā)。?
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)算。它能對(duì)任意深度的多層神經(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工具箱。它簡(jiǎn)單高效,能夠運(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ò)、隱馬可夫模型等,也支持遺傳算法。
JavaScript
1.?Convnet.js?由JavaScript編寫,是一個(gè)完全在瀏覽器內(nèi)完成訓(xùn)練深度學(xué)習(xí)模型(主要是神經(jīng)網(wǎng)絡(luò))的封裝庫。不需要其它軟件,不需要編譯器,不需要安裝包,不需要GPU,甚至不費(fèi)吹灰之力。
Lua
1.?Torch是一款廣泛適用于各種機(jī)器學(xué)習(xí)算法的科學(xué)計(jì)算框架。它使用容易,用快速的腳本語言LuaJit開發(fā),底層是C/CUDA實(shí)現(xiàn)。Torch基于Lua編程語言。
Julia
1.?Mocha是Julia的深度學(xué)習(xí)框架,受C++框架Caffe的啟發(fā)。Mocha中通用隨機(jī)梯度求解程序和通用模塊的高效實(shí)現(xiàn),可以用來訓(xùn)練深度/淺層(卷積)神經(jīng)網(wǎng)絡(luò),可以通過(棧式)自編碼器配合非監(jiān)督式預(yù)訓(xùn)練(可選)完成。它的優(yōu)勢(shì)特性包括模塊化結(jié)構(gòu)、提供上層接口,可能還有速度、兼容性等更多特性。
Lisp
1.?Lush(Lisp?Universal?Shell)是一種面向?qū)ο蟮木幊陶Z言,面向?qū)Υ笠?guī)模數(shù)值和圖形應(yīng)用感興趣的廣大研究員、實(shí)驗(yàn)員和工程師們。它擁有機(jī)器學(xué)習(xí)的函數(shù)庫,其中包含豐富的深度學(xué)習(xí)庫。
Haskell
1.?DNNGraph是Haskell用于深度神經(jīng)網(wǎng)絡(luò)模型生成的領(lǐng)域特定語言(DSL)。
.NET
1.?Accord.NET?是完全用C#編寫的.NET機(jī)器學(xué)習(xí)框架,包括音頻和圖像處理的類庫。它是產(chǎn)品級(jí)的完整框架,用于計(jì)算機(jī)視覺、計(jì)算機(jī)音頻、信號(hào)處理和統(tǒng)計(jì)應(yīng)用領(lǐng)域。
R
1.?darch包可以用來生成多層神經(jīng)網(wǎng)絡(luò)(深度結(jié)構(gòu))。訓(xùn)練的方法包括了對(duì)比散度的預(yù)訓(xùn)練和眾所周知的訓(xùn)練算法(如反向傳播法或共軛梯度法)的細(xì)調(diào)。
2.?deepnet實(shí)現(xiàn)了許多深度學(xué)習(xí)框架和神經(jīng)網(wǎng)絡(luò)算法,包括反向傳播(BP)、受限玻爾茲曼機(jī)(RBM)、深度信念網(wǎng)絡(luò)(DBP)、深度自編碼器(Deep?autoencoder)等等。
原文鏈接:Deep Learning Libraries by Language
Deep Learning Libraries by Language
Python
Theano?is a python library for defining and evaluating mathematical expressions with numerical arrays. It makes it easy to write deep learning algorithms in python. On the top of the Theano many more libraries are built.
Keras?is a minimalist, highly modular neural network library in the spirit of Torch, written in Python, that uses Theano under the hood for optimized tensor manipulation on GPU and CPU.
Pylearn2?is a library that wraps a lot of models and training algorithms such as Stochastic Gradient Descent that are commonly used in Deep Learning. Its functional libraries are built on top of Theano.
Lasagne?is a lightweight library to build and train neural networks in Theano. It is governed by simplicity, transparency, modularity, pragmatism , focus and restraint principles.
Blocks?a framework that helps you build neural network models on top of Theano.
Caffe?is a deep learning framework made with expression, speed, and modularity in mind. It is developed by the Berkeley Vision and Learning Center (BVLC) and by community contributors. Google's?DeepDream?is based on Caffe Framework. This framework is a BSD-licensed C++ library with Python Interface.
nolearn?contains a number of wrappers and abstractions around existing neural network libraries, most notably?Lasagne, along with a few machine learning utility modules.
Gensim?is deep learning toolkit implemented in python programming language intended for handling large text collections, using efficient algorithms.
Chainer?bridge the gap between algorithms and implementations of deep learning. Its powerful, flexible and intuitive and is considered as the?flexible framework?for Deep Learning.
deepnet?is a GPU-based python implementation of deep learning algorithms like Feed-forward Neural Nets, Restricted Boltzmann Machines, Deep Belief Nets, Autoencoders, Deep Boltzmann Machines and Convolutional Neural Nets.
Hebel?is a library for deep learning with neural networks in Python using GPU acceleration with CUDA through PyCUDA. It implements the most important types of neural network models and offers a variety of different activation functions and training methods such as momentum, Nesterov momentum, dropout, and early stopping.
CXXNET?is fast, concise, distributed deep learning framework based on MShadow. It is a lightweight and easy extensible C++/CUDA neural network toolkit with friendly Python/Matlab interface for training and prediction.
DeepPy?is a Pythonic deep learning framework built on top of NumPy.
DeepLearning?is deep learning library, developed with C++ and python.
Neon?is Nervana's Python based Deep Learning framework.
Matlab
ConvNet?Convolutional neural net is a type of deep learning classification algorithms, that can learn useful features from raw data by themselves and is performed by tuning its weighs.
DeepLearnToolBox?is a matlab/octave toolbox for deep learning and includes Deep Belief Nets, Stacked Autoencoders, convolutional neural nets.
cuda-convnet?is a fast C++/CUDA implementation of convolutional (or more generally, feed-forward) neural networks. It can model arbitrary layer connectivity and network depth. Any directed acyclic graph of layers will do. Training is done using the backpropagation algorithm.
MatConvNet??is a MATLAB toolbox implementing Convolutional Neural Networks (CNNs) for computer vision applications. It is simple, efficient, and can run and learn state-of-the-art CNNs
CPP
eblearn?is an open-source C++ library of machine learning by New York University’s machine learning lab, led by Yann LeCun. In particular, implementations of convolutional neural networks with energy-based models along with a GUI, demos and tutorials.
SINGA?is designed to be general to implement the distributed training algorithms of existing systems. It is supported by Apache Software Foundation.
NVIDIA?DIGITS?is a new system for developing, training and visualizing deep neural networks. It puts the power of deep learning into an intuitive browser-based interface, so that data scientists and researchers can quickly design the best DNN for their data using real-time network behavior visualization.
Intel? Deep Learning Framework?provides a unified framework for Intel? platforms accelerating Deep Convolutional Neural Networks.
Java
N-Dimensional Arrays for Java?(ND4J)is scientific computing libraries for the JVM. They are meant to be used in production environments, which means routines are designed to run fast with minimum RAM requirements.
Deeplearning4j?is the first commercial-grade, open-source, distributed deep-learning library written for Java and Scala. It is designed to be used in business environments, rather than as a research tool.
Encog?is an advanced machine learning framework which supports Support Vector Machines,Artificial Neural Networks, Genetic Programming, Bayesian Networks, Hidden Markov Models, Genetic Programming and Genetic Algorithms are supported.
JavaScript
Convnet.js?is a Javascript library for training Deep Learning models (mainly Neural Networks) entirely in a browser. No software requirements, no compilers, no installations, no GPUs, no sweat.
Lua
Torch?is a scientific computing framework with wide support for machine learning algorithms. It is easy to use and efficient, fast scripting language, LuaJIT, and an underlying C/CUDA implementation. Torch is based on Lua programming language.
Julia
Mocha?is a Deep Learning framework for Julia, inspired by the C++ framework Caffe. Efficient implementations of general stochastic gradient solvers and common layers in Mocha could be used to train deep / shallow (convolutional) neural networks, with (optional) unsupervised pre-training via (stacked) auto-encoders. Its best feature include Modular architecture, High-level Interface, portability with speed, compatibility and many more.
Lisp
Lush(Lisp Universal Shell)?is an object-oriented programming language designed for researchers, experimenters, and engineers interested in large-scale numerical and graphic applications. It comes with rich set of deep learning libraries as a part of machine learning libraries.
Haskell
DNNGraph?is a deep neural network model generation DSL in Haskell.
.NET
R
總結(jié)
以上是生活随笔為你收集整理的各种编程语言的深度学习库整理(中英版)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分类器是如何做检测的?(2)——【续】检
- 下一篇: win7+ubuntu 13.04双系统