各种编程语言的深度学习库整理(中英版)

来源:互联网 发布:特征提取算法 编辑:程序博客网 时间:2024/06/05 08:11
本文总结了Python、Matlab、CPP、Java、JavaScript、Lua、Julia、Lisp、Haskell、.NET、R等语言的深度学习库,赶紧收藏吧!

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


Python

  1. 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.

    1. 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.

    2. 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.

    3. 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.

    4. Blocks a framework that helps you build neural network models on top of Theano.

  2. 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.

  3. nolearn contains a number of wrappers and abstractions around existing neural network libraries, most notably Lasagne, along with a few machine learning utility modules.

  4. Gensim is deep learning toolkit implemented in python programming language intended for handling large text collections, using efficient algorithms.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. DeepPy is a Pythonic deep learning framework built on top of NumPy.

  10. DeepLearning is deep learning library, developed with C++ and python.

  11. Neon is Nervana's Python based Deep Learning framework.

Matlab

  1. 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.

  2. DeepLearnToolBox is a matlab/octave toolbox for deep learning and includes Deep Belief Nets, Stacked Autoencoders, convolutional neural nets.

  3. 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.

  4. 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

  1. 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.

  2. SINGA is designed to be general to implement the distributed training algorithms of existing systems. It is supported by Apache Software Foundation.

  3. 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.

  4. Intel® Deep Learning Framework provides a unified framework for Intel® platforms accelerating Deep Convolutional Neural Networks.

Java

  1. 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.

  2. 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.

  3. 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

  1. 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

  1. 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

  1. 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

  1. 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

  1. DNNGraph is a deep neural network model generation DSL in Haskell.

.NET

  1. Accord.NET is a .NET machine learning framework combined with audio and image processing libraries completely written in C#. It is a complete framework for building production-grade computer vision, computer audition, signal processing and statistics applications

R

  1. darch package can be used for generating neural networks with many layers (deep architectures). Training methods includes a pre training with the contrastive divergence method and a fine tuning with common known training algorithms like backpropagation or conjugate gradient.
  2. deepnet implements some deep learning architectures and neural network algorithms, including BP,RBM,DBN,Deep autoencoder and so on.

0 0
原创粉丝点击