# 50 Deep Learning Software Tools and Platforms, Updated

We present the popular software & toolkit resources for Deep Learning, including Caffe, Cuda-convnet, Deeplearning4j, Pylearn2, Theano, and Torch. Explore the new list!

Deep learning is the fastest growing field and the new big trend in machine learning. It can revolutionize the way we see Artificial Intelligence. A set of algorithms that use artificial neural networks to learn in multi-levels, corresponding to different levels of abstraction. Check the image map below - links to different areas on KDnuggets!

Some of the applications of deep learning are automatic speech recognition, image recognition/Optical character recognition, NLP, and classification/clustering/prediction of almost any entity that can be sensed & digitized. Google Brain is a notable deep learning research project.

Explore the list:

- Blocks, a Theano framework for training neural networks
- Caffe, a deep learning framework made with expression, speed, and modularity in mind.
- Cuda-Convnet, 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 back-propagation algorithm.
- ConvNet, a Matlab based convolutional neural network toolbox - a type of deep learning, can learn useful features from raw data by itself.
- convnet.js, does Deep Learning in Javascript. Train Convolutional Neural Networks (or ordinary ones) in your browser.
- CUV Library (github link), a C++ framework with Python bindings for easy use of Nvidia CUDA functions on matrices. It contains an RBM implementation, as well as annealed importance sampling code and code to calculate the partition function exactly (from AIS lab at University of Bonn).
- cudamat, a GPU-based matrix library for Python. Example code for training Neural Networks and Restricted Boltzmann Machines is included.
- CXXNET, a 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.
- DeepLearnToolbox, a Matlab toolbox for Deep Learning (from Rasmus Berg Palm)
- Deep Belief Networks. Matlab code for learning Deep Belief Networks (from Ruslan Salakhutdinov)
- deeplearning4j, an Apache 2.0-licensed, open-source, distributed neural net library written in Java and Scala.
- DeepDist, accelerates the training by distributing stochastic gradient descent for data stored on HDFS / Spark via a simple Python interface.
- deepmat, a Matlab based deep learning algorithms.
- deepnet, deep learning toolkit in R
- Deepwalk, Deep learning for graphs. It learns a latent representation of adjacency matrices using deep learning techniques developed for language modeling.
- Deep Pink, a chess AI that learns to play chess using deep learning.
- darch, create deep architectures in the R programming language
- dl-machine, Scripts to setup a GPU / CUDA-enabled compute server with libraries for deep learning
- Eblearn.lsh, a LUSH-based machine learning library for doing Energy-Based Learning. It includes code for “Predictive Sparse Decomposition” and other sparse auto-encoder methods for unsupervised learning. Koray Kavukcuoglu provides Eblearn code for several deep learning papers on this page.
- Eblearn is a C++ machine learning library with a BSD license for energy-based learning, convolutional networks, vision/recognition applications, etc. EBLearn is primarily maintained by Pierre Sermanet at NYU.
- elastic-thought, Scalable REST API for the Caffe deep learning framework
- Gnumpy, a Python module that interfaces in a way almost identical to numpy, but does its computations on your computer GPU. It runs on top of cudamat.
- gensim , an open source word vector space modeling/topic modeling toolkit, implemented in Python for handling large text collections using efficient online algorithms.
- H2O scales statistics, machine learning and math over Big Data. H2O is extensible and users can build blocks using simple math legos in the core. H2O keeps familiar interfaces like R, Excel & JSON so that big data enthusiasts and experts can explore, munge, model and score data sets using a range of simple to advanced algorithms.
- hebel, a GPU-accelerated Deep Learning Library in Python
- Keras, a Theano based deep learning library.
- Learning Deep Boltzmann Machines Matlab code for training and fine-tuning Deep Boltzmann Machines (from Ruslan Salakhutdinov).
- LUSH programming language and development environment, which is used @ NYU for deep convolutional networks
- Lasagne, a lightweight library to build and train neural networks in Theano.
- libdeep, a deep learning library for C/C++
- matrbm. Simplified version of Ruslan Salakhutdinov’s code, by Andrej Karpathy (Matlab).
- Mariana, Theano graphs of model functions can now be printed using layer's name
- MXNet, a deep learning framework designed for both efficiency and flexibility.
- MShadow, a lightweight CPU/GPU Matrix/Tensor Template Library in C++/CUDA. The goal of mshadow is to support efficient, device invariant and simple tensor library for machine learning project that aims for both simplicity and performance. Supports CPU/GPU/Multi-GPU and distributed system.
- mPoT is python code using CUDAMat and gnumpy to train models of natural images (from Marc’Aurelio Ranzato).
- Nengo, a graphical and scripting based software package for simulating large-scale neural systems.
- neuralnetworks, a Java based GPU library for deep learning algorithms.
- 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.
- ND4J – N-dimensional scientific computing for Java. An open source extension of Java operating on Java virtual machine. This is a scientific computing library for linear algebra and matrix manipulation in a production environment.
- Neon – Neon is Nervana's Python based Deep Learning framework and achieves the fastest performance on many common deep neural networks such as AlexNet, VGG and GoogLeNet.
- n42 – Deep learning module for nodejs
- OpenDL - The Deep Learning training framework on Spark
- Overfeat – A Convolutional Network-based image features extractor and classifier.
- Pylearn2 - Pylearn2 is a library designed to make machine learning research easy.
- pydeeplearn
**–**Deep learning API with emotion recognition application - pdnn
**–**A Python Toolkit for Deep Learning. - RNNLM- Tomas Mikolov’s Recurrent Neural Network based Language models Toolkit.
- RNNLIB-RNNLIB is a recurrent neural network library for sequence learning problems. Applicable to most types of spatiotemporal data, it has proven particularly effective for speech and handwriting recognition.
- senna – a fork of Ronan Collobert’s senna deep learning based NLP tools
- Tensorflow - TensorFlow™ is an open source software library for numerical computation using data flow graphs.
- Torch – provides a Matlab-like environment for state-of-the-art machine learning algorithms in lua (from Ronan Collobert, Clement Farabet and Koray Kavukcuoglu)
- Theano – CPU/GPU symbolic expression compiler in python (from MILA lab at University of Montreal)
- tiny-cnn – deep learning(convolutional neural networks) in C++11/TBB
- 3-way factored RBM and mcRBM is python code calling CUDAMat to train models of natural images (from Marc’Aurelio Ranzato).
- Matlab code for training conditional RBMs/DBNs and factored conditional RBMs (from Graham Taylor).
- Veles– Distributed platform for rapid Deep learning application development.(Samsung)

This post used some content from: Deeplearning.net

**Did we miss your favorites? Tell us what's on your mind in the comments.**

**Related:**

- Deep Learning Transcends the Bag of Words
- Spark + Deep Learning: Distributed Deep Neural Network Training with SparkNet
- Deep Learning and Artistic Style – Can art be quantified?