Comparison of deep learning software
Appearance
The following table compares some of the most popular software frameworks, libraries and computer programs for deep learning.
Deep learning software by name
![]() |
Software | Creator | Software license[a] | Open source | Platform | Written in | Interface | OpenMP support | OpenCL support | CUDA support | Automatic differentiation[1] | Has pretrained models | Recurrent Nets | Convolutional Nets | RBM/DBNs |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Caffe | Berkeley Vision and Learning Center, community contributors | BSD 2-Clause License | Yes | Ubuntu, OS X, AWS,[2] unofficial Android port,[3] Windows support by Microsoft Research,[4] unofficial Windows port[5] | C++, Python[6] | C++, command line, Python, MATLAB[7] | No | Branch,[8] pull request,[9] third party implementation[10] | Yes | ? | Yes[11] | Yes | Yes | No[12] |
Chainer[13] | PFI/PFN | MIT license | Yes | Linux, Mac OS X Windows | Python | Python | No | On roadmap[14] | Yes | ? | Through Caffe's model zoo[15] | Yes | Yes | Yes |
CNTK | Microsoft | Free[16] | Yes | Windows, Linux[17] | C++ | Command line,[18] network description language BrainScript[19] (C++, Python and .NET on roadmap[20]) | Yes[21] | No | Yes | Yes | No[22] | Yes[23] | Yes[23] | No[24] |
Deeplearning4j | Skymind engineering team; Deeplearning4j community; originally Adam Gibson | Apache 2.0 | Yes | Linux, Ubuntu, Windows, OSX, Android (Cross-platform) | Java, Scala, C, C++ | Java, Scala, Clojure | On roadmap | On roadmap[25] | Yes[26] | Computational Graph | Yes[27] | Yes | Yes | Yes |
MXNet | Distributed (Deep) Machine Learning Community | Apache 2.0 | Yes | Ubuntu, OS X, Windows,[28][29] AWS, Android,[30] iOS, JavaScript[31] | C++, Python, Julia, Matlab, Go, R, Scala | C++, Python, Julia, Matlab, JavaScript, Go, R, Scala | Yes | On roadmap[32] | Yes | Yes[33] | Yes[34] | Yes | Yes | Yes |
Neural Designer | Artelnics | Proprietary | No | Windows, OS X, Linux | C++ | Graphical user interface | Yes | No | No | ? | ? | No | No | No |
OpenNN | Artelnics | GNU LGPL | Yes | Cross platform | C++ | C++ | Yes | No | No | ? | ? | No | No | No |
SINGA[35] | Apache Incubator | Apache 2.0 | Yes | Linux | C++, Python | Python, C++ | No | No | Yes | ? | No | Yes | Yes | Yes |
TensorFlow | Google Brain team | Apache 2.0 | Yes | Linux, Mac OS X (Windows support on roadmap[36][37]) | C++, Python | Python, C/C++ | No | On roadmap[37][38] | Yes | Yes[39] | No | Yes | Yes | Yes |
Theano | Université de Montréal | BSD license | Yes | Cross-platform | Python | Python | Yes | Under development[40] | Yes | Yes[41][42] | Through Lasagne's model zoo[43] | Yes | Yes | Yes |
Torch | Ronan Collobert, Koray Kavukcuoglu, Clement Farabet | BSD License | Yes | Linux, Android,[44] Mac OS X, iOS | C, Lua | Lua, LuaJIT,[45] C, utility library for C++/OpenCL[46] | Yes | Third party implementations[47] | Yes[48][49] | Through Twitter's Autograd[50] | Yes[51] | Yes | Yes | Yes |
- ^ Licenses here are a summary, and are not taken to be complete statements of the licenses. Some libraries may use other libraries internally under different licenses
Deep learning software not yet covered
- adnn – Javascript neural networks
- Blocks – Theano framework for building and training neural networks
- CaffeOnSpark – Scalable deep learning package running Caffe on Spark and Hadoop clusters with peer-to-peer communication
- CNNLab – Deep learning framework using GPU and FPGA-based accelerators
- ConvNetJS – Javascript library for training deep learning models entirely in a web browser
- Cortex – Theano-based deep learning toolbox for neuroimaging
- cuDNN – Highly optimized deep learning computation primitives implemented in CUDA
- CURRENNT – CUDA-accelerated toolkit for deep Long Short-Term Memory (LSTM) RNN architectures supporting large data sets not fitting into main memory.
- DeepCL – OpenCL library to train deep convolutional networks, with APIs for C++, Python and the command line
- DeepLearningKit – Open source deep learning framework for iOS, OS X and tvOS[52]
- DeepLearnToolbox – Matlab/Octave toolbox for deep learning (deprecated)
- DeepX – Software accelerator for deep learning execution aimed towards mobile devices
- DSSTNE (Deep Scalable Sparse Tensor Network Engine) – Amazon developed library for building deep learning models
- Faster RNNLM (HS/NCE) toolkit – An rnnlm implementation for training on huge datasets and very large vocabularies and usage in real-world ASR and MT problems
- GNU Gneural Network – GNU package which implements a programmable neural network
- IDLF – Intel® Deep Learning Framework; supports OpenCL (deprecated)
- Keras – Deep Learning library for Theano and TensorFlow
- Lasagne – Lightweight library to build and train neural networks in Theano
- Leaf – "The Hacker's Machine Learning Engine"; supports OpenCL
- LightNet – MATLAB-based environment for deep learning
- MatConvNet – CNNs for MATLAB
- neon – Nervana's Python based Deep Learning framework
- Neural Network Toolbox – MATLAB toolbox for neural network creation, training and simulation
- Pylearn2 – Machine learning library mainly built on top of Theano
- scikit-neuralnetwork – Multi-layer perceptrons as a wrapper for Pylearn2
- Tensor Builder – Lightweight extensible library for easy creation of deep neural networks using functions from any Tensor-based library through an API based on the Builder Pattern
- TensorGraph – Framework for building any models based on TensorFlow
- Theano-Lights – Deep learning research framework based on Theano
- tiny-cnn – Header only, dependency-free deep learning framework in C++11
- torchnet – Torch framework providing a set of abstractions aiming at encouraging code re-use as well as encouraging modular programming[53][54]
- Veles – Distributed machine learning platform by Samsung
Related software
- Deep Visualization Toolbox[55][56] – Software tool for "probing" DNNs by feeding them image data and watching the reaction of every neuron, and for visualizing what a specific neuron "wants to see the most"
- LSTMVis – A visual analysis tool for recurrent neural networks
- Neural Engineering Object (NENGO) – A graphical and scripting software for simulating large-scale neural systems
- Numenta Platform for Intelligent Computing – Numenta's open source implementation of their hierarchical temporal memory model
- pastalog – Simple, realtime visualization of neural network training performance
See also
- Deep learning#Software libraries
- List of datasets for machine learning research
- Comparison of datasets in machine learning
- Comparison of numerical analysis software
- Comparison of statistical packages
- List of numerical analysis software
References
- ^ Atilim Gunes Baydin; Barak A. Pearlmutter; Alexey Andreyevich Radul; Jeffrey Mark Siskind (20 Feb 2015). "Automatic differentiation in machine learning: a survey". arXiv:1502.05767 [cs.LG].
- ^ "Caffe".
- ^ "GitHub - sh1r0/caffe-android-lib: Porting caffe to android platform". GitHub.
- ^ "GitHub - Microsoft/caffe: Caffe on both Linux and Windows". GitHub.
- ^ "GitHub - niuzhiheng/caffe: Caffe". GitHub.
- ^ "Caffe".
- ^ "Caffe".
- ^ "GitHub - BVLC/caffe at opencl". GitHub.
- ^ "OpenCL Backend by lunochod · Pull Request #2195 · BVLC/caffe". GitHub.
- ^ "GitHub - amd/OpenCL-caffe: OpenCL version of caffe developed by AMD research lab". GitHub.
- ^ "Model Zoo". GitHub.
- ^ "RBM layer ? (+DBN) · Issue #1207 · BVLC/caffe". GitHub.
- ^ "Chainer Official Site". GitHub.
- ^ "Chainer OpenCL support".
- ^ "Chainer Caffe Reference Model Support". GitHub.
- ^ "CNTK/LICENSE.md at master · Microsoft/CNTK · GitHub". GitHub.
- ^ "Setup CNTK on your machine". GitHub.
- ^ "CNTK usage overview". GitHub.
- ^ "BrainScript Network Builder". GitHub.
- ^ "CNTK as a library with C++ APIs · Issue #175 · Microsoft/CNTK". GitHub.
- ^ "How to train a model using multiple machines? · Issue #59 · Microsoft/CNTK". GitHub.
- ^ https://github.com/Microsoft/CNTK/issues/140#issuecomment-186466820
- ^ a b Microsoft Corporation. "CNTK - Computational Network Toolkit". Microsoft Corporation.
- ^ https://github.com/Microsoft/CNTK/issues/534.
{{cite web}}
: Missing or empty|title=
(help) - ^ "Support for Open CL · Issue #27 · deeplearning4j/nd4j". GitHub.
- ^ "N-Dimensional Scientific Computing for Java".
- ^ Chris Nicholson; Adam Gibson. "Deeplearning4j Models".
- ^ "Releases · dmlc/mxnet". Github.
- ^ "Installation Guide — mxnet documentation". Readthdocs.
- ^ "MXNet Smart Device". ReadTheDocs.
- ^ "MXNet.js". Github.
- ^ "Support for other Device Types, OpenCL AMD GPU · Issue #621 · dmlc/mxnet". GitHub.
- ^ http://mxnet.readthedocs.io/
- ^ "Model Gallery". GitHub.
- ^ Apache SINGA. "Apache SINGA – A Distributed Deep Learning Platform".
- ^ "Windows Support and Documentation · Issue #17 · tensorflow/tensorflow". GitHub.
- ^ a b "tensorflow/roadmap.md at master · tensorflow/tensorflow · GitHub". GitHub.
- ^ "OpenCL support · Issue #22 · tensorflow/tensorflow". GitHub.
- ^ https://www.tensorflow.org/
- ^ "Using the GPU — Theano 0.8.2 documentation".
- ^ http://deeplearning.net/software/theano/library/gradient.html
- ^ https://groups.google.com/d/msg/theano-users/mln5g2IuBSU/gespG36Lf_QJ
- ^ "Recipes/modelzoo at master · Lasagne/Recipes · GitHub". GitHub.
- ^ "GitHub - soumith/torch-android: Torch-7 for Android". GitHub.
- ^ "Torch7: A Matlab-like Environment for Machine Learning" (PDF).
- ^ "GitHub - jonathantompson/jtorch: An OpenCL Torch Utility Library". GitHub.
- ^ "Cheatsheet". GitHub.
- ^ "Torch CUDA backend". GitHub.
- ^ "Torch CUDA backend for nn". GitHub.
- ^ https://github.com/twitter/torch-autograd
- ^ "ModelZoo". GitHub.
- ^ http://arxiv.org/pdf/1605.04614v1.pdf
- ^ https://code.facebook.com/posts/580706092103929
- ^ Ronan Collobert; Laurens van der Maaten; Armand Joulin. "Torchnet: An Open-Source Platform for (Deep) Learning Research" (PDF). Facebook AI Research. Retrieved 24 June 2016.
- ^ http://arxiv.org/abs/1506.06579
- ^ http://yosinski.com/deepvis