各种编程语言的深度学习库整理(中英版)
Python
1.?Theano是一個python類庫,用數組向量來定義和計算數學表達式。它使得在Python環境下編寫深度學習算法變得簡單。在它基礎之上還搭建了許多類庫。
? 1.Keras是一個簡潔、高度模塊化的神經網絡庫,它的設計參考了Torch,用Python語言編寫,支持調用GPU和CPU優化后的Theano運算。
2.Pylearn2是一個集成大量深度學習常見模型和訓練算法的庫,如隨機梯度下降等。它的功能庫都是基于Theano之上。
3.Lasagne是一個搭建和訓練神經網絡的輕量級封裝庫,基于Theano。它遵循簡潔化、透明化、模塊化、實用化和專一化的原則。
4.Blocks也是一個基于Theano的幫助搭建神經網絡的框架。
2.?Caffe是深度學習的框架,它注重于代碼的表達形式、運算速度以及模塊化程度。它是由伯克利視覺和學習中心(Berkeley?Vision?and?Learning?Center,?BVLC)以及社區成員共同開發。谷歌的DeepDream項目就是基于Caffe框架完成。這個框架是使用BSD許可證的C++庫,并提供了Python調用接口。
3.?nolearn囊括了大量的現有神經網絡函數庫的封裝和抽象接口、大名鼎鼎的Lasagne以及一些機器學習的常用模塊。
4.?Genism也是一個用Python編寫的深度學習小工具,采用高效的算法來處理大規模文本數據。
5.?Chainer在深度學習的理論算法和實際應用之間架起一座橋梁。它的特點是強大、靈活、直觀,被認為是深度學習的靈活框架。
6.?deepnet是基于GPU的深度學習算法函數庫,使用Python語言開發,實現了前饋神經網絡(FNN)、受限玻爾茲曼機(RBM)、深度信念網絡(DBN)、自編碼器(AE)、深度玻爾茲曼機(DBM)和卷積神經網絡(CNN)等算法。
7.?Hebel也是深度學習和神經網絡的一個Python庫,它通過pyCUDA控制支持CUDA的GPU加速。它實現了最重要的幾類神經網絡模型,提供了多種激活函數和模型訓練方法,例如momentum、Nesterov?momentum、dropout、和early?stopping等方法。
8.?CXXNET是一個基于MShadow開發的快速、簡潔的分布式深度學習框架。它是一個輕量級、易擴展的C++/CUDA神經網絡工具箱,提供友好的Python/Matlab接口來進行訓練和預測。
9.?DeepPy是基于NumPy的深度學習框架。
10.?DeepLearning是一個用C++和Python共同開發的深度學習函數庫。
11.?Neon是Nervana?System?的深度學習框架,使用Python開發。?
Matlab
1.?ConvNet?卷積神經網絡是一類深度學習分類算法,它可以從原始數據中自主學習有用的特征,通過調節權重值來實現。
2.?DeepLearnToolBox是用于深度學習的Matlab/Octave工具箱,它包含深度信念網絡(DBN)、棧式自編碼器(stacked?AE)、卷積神經網絡(CNN)等算法。
3.?cuda-convet是一套卷積神經網絡(CNN)代碼,也適用于前饋神經網絡,使用C++/CUDA進行運算。它能對任意深度的多層神經網絡建模。只要是有向無環圖的網絡結構都可以。訓練過程采用反向傳播算法(BP算法)。
4.?MatConvNet是一個面向計算機視覺應用的卷積神經網絡(CNN)Matlab工具箱。它簡單高效,能夠運行和學習最先進的機器學習算法。
CPP
1.?eblearn是開源的機器學習C++封裝庫,由Yann?LeCun主導的紐約大學機器學習實驗室開發。它用基于能量的模型實現卷積神經網絡,并提供可視化交互界面(GUI)、示例以及示范教程。
2.?SINGA是Apache軟件基金會支持的一個項目,它的設計目標是在現有系統上提供通用的分布式模型訓練算法。
3.?NVIDIA?DIGITS是用于開發、訓練和可視化深度神經網絡的一套新系統。它把深度學習的強大功能用瀏覽器界面呈現出來,使得數據科學家和研究員可以實時地可視化神經網絡行為,快速地設計出最適合數據的深度神經網絡。
4.?Intel??Deep?Learning?Framework提供了Intel?平臺加速深度卷積神經網絡的一個統一平臺。
Java
1.?N-Dimensional?Arrays?for?Java?(ND4J)?是JVM平臺的科學計算函數庫。它主要用于產品中,也就是說函數的設計需求是運算速度快、存儲空間最省。
2.?Deeplearning4j?是第一款商業級別的開源分布式深度學習類庫,用Java和Scala編寫。它的設計目的是為了在商業環境下使用,而不是作為一款研究工具。
3.?Encog是一個機器學習的高級框架,涵蓋支持向量機、人工神經網絡、遺傳編程、貝葉斯網絡、隱馬可夫模型等,也支持遺傳算法。
JavaScript
1.?Convnet.js?由JavaScript編寫,是一個完全在瀏覽器內完成訓練深度學習模型(主要是神經網絡)的封裝庫。不需要其它軟件,不需要編譯器,不需要安裝包,不需要GPU,甚至不費吹灰之力。
Lua
1.?Torch是一款廣泛適用于各種機器學習算法的科學計算框架。它使用容易,用快速的腳本語言LuaJit開發,底層是C/CUDA實現。Torch基于Lua編程語言。
Julia
1.?Mocha是Julia的深度學習框架,受C++框架Caffe的啟發。Mocha中通用隨機梯度求解程序和通用模塊的高效實現,可以用來訓練深度/淺層(卷積)神經網絡,可以通過(棧式)自編碼器配合非監督式預訓練(可選)完成。它的優勢特性包括模塊化結構、提供上層接口,可能還有速度、兼容性等更多特性。
Lisp
1.?Lush(Lisp?Universal?Shell)是一種面向對象的編程語言,面向對大規模數值和圖形應用感興趣的廣大研究員、實驗員和工程師們。它擁有機器學習的函數庫,其中包含豐富的深度學習庫。
Haskell
1.?DNNGraph是Haskell用于深度神經網絡模型生成的領域特定語言(DSL)。
.NET
1.?Accord.NET?是完全用C#編寫的.NET機器學習框架,包括音頻和圖像處理的類庫。它是產品級的完整框架,用于計算機視覺、計算機音頻、信號處理和統計應用領域。
R
1.?darch包可以用來生成多層神經網絡(深度結構)。訓練的方法包括了對比散度的預訓練和眾所周知的訓練算法(如反向傳播法或共軛梯度法)的細調。
2.?deepnet實現了許多深度學習框架和神經網絡算法,包括反向傳播(BP)、受限玻爾茲曼機(RBM)、深度信念網絡(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
總結
以上是生活随笔為你收集整理的各种编程语言的深度学习库整理(中英版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分类器是如何做检测的?(2)——【续】检
- 下一篇: 保存处理后的视频文件