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 | Parallel execution (multi node) | Actively
Developed |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Seq2SeqSharp | Zhongkai Fu | BSD | Yes | Windows | C# | C# | No | No | Yes | Yes | Yes | Yes | No | No | Yes | Yes |
roNNie.ai | Kevin Lok | MIT license | Yes | Linux, macOS, Windows | Python | Python | Yes | Yes | Yes | Yes | ||||||
BigDL | Jason Dai | Apache 2.0 | Yes | Apache Spark | Scala | Scala, Python | No | Yes | Yes | Yes | ||||||
Caffe | Berkeley Vision and Learning Center | BSD | Yes | Linux, macOS, Windows[2] | C++ | Python, MATLAB, C++ | Yes | Under development[3] | Yes | Yes | Yes[4] | Yes | Yes | No | ? | |
Deeplearning4j | Skymind engineering team; Deeplearning4j community; originally Adam Gibson | Apache 2.0 | Yes | Linux, macOS, Windows, Android (Cross-platform) | C++, Java | Java, Scala, Clojure, Python (Keras), Kotlin | Yes | No[5] | Yes[6][7] | Computational Graph | Yes[8] | Yes | Yes | Yes | Yes[9] | |
Chainer | Preferred Networks | MIT license | Yes | Linux, macOS, Windows | Python | No | No[10][11] | Yes | Yes | Yes | Yes | Yes | ||||
Darknet | Joseph Redmon | Public Domain | Yes | Cross-Platform | C | C, Python | Yes | No[12] | Yes | Yes | ||||||
Dlib | Davis King | Boost Software License | Yes | Cross-Platform | C++ | C++ | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | |
DataMelt (DMelt) | S.Chekanov | Freemium | Yes | Cross-Platform | Java | Java | No | No | No | No | No | Yes | Yes | Yes | Yes | |
DyNet | Carnegie Mellon University | Apache 2.0 | Yes | Linux, macOS, Windows | C++, Python | No[13] | Yes | Yes | Yes | |||||||
fastai library | fast.ai research lab | Apache 2.0 | Yes | Linux, macOS, Windows | Python | Python | ? | No[14] | Yes[15] | ? | Yes | Yes | Yes | ? | ? | Yes |
Intel Data Analytics Acceleration Library | Intel | Apache License 2.0 | Yes | Linux, macOS, Windows on Intel CPU[16] | C++, Python, Java | C++, Python, Java[16] | Yes | No | No | Yes | No | Yes | Yes | |||
Intel Math Kernel Library | Intel | Proprietary | No | Linux, macOS, Windows on Intel CPU[17] | C[18] | Yes[19] | No | No | Yes | No | Yes[20] | Yes[20] | No | |||
Keras | François Chollet | MIT license | Yes | Linux, macOS, Windows | Python | Python, R | Only if using Theano as backend | Can use Theano or Tensorflow as backends | Yes | Yes | Yes[21] | Yes | Yes | Yes | Yes[22] | |
MATLAB + Neural Network Toolbox | MathWorks | Proprietary | No | Linux, macOS, Windows | C, C++, Java, MATLAB | MATLAB | No | No | Train with Parallel Computing Toolbox and generate CUDA code with GPU Coder[23] | No | Yes[24][25] | Yes[24] | Yes[24] | No | With Parallel Computing Toolbox[26] | |
Microsoft Cognitive Toolkit | Microsoft Research | MIT license[27] | Yes | Windows, Linux[28] (macOS via Docker on roadmap) | C++ | Python (Keras), C++, Command line,[29] BrainScript[30] (.NET on roadmap[31]) | Yes[32] | No | Yes | Yes | Yes[33] | Yes[34] | Yes[34] | No[35] | Yes[36] | |
Apache MXNet | Apache Software Foundation | Apache 2.0 | Yes | Linux, macOS, Windows,[37][38] AWS, Android,[39] iOS, JavaScript[40] | Small C++ core library | C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl | Yes | On roadmap[41] | Yes | Yes[42] | Yes[43] | Yes | Yes | Yes | Yes[44] | |
Neural Designer | Artelnics | Proprietary | No | Linux, macOS, Windows | C++ | Graphical user interface | Yes | No | No | ? | ? | No | No | No | ? | |
OpenNN | Artelnics | GNU LGPL | Yes | Cross-platform | C++ | C++ | Yes | No | Yes | ? | ? | No | No | No | ? | |
PaddlePaddle | Baidu | Apache License | Yes | Linux, macOS, Windows | C++, Python | Python | No | Yes | Yes | Yes | Yes | Yes | Yes | ? | Yes | |
PlaidML | Vertex.AI | AGPL3 | Yes | Linux, macOS, Windows | C++, Python | Keras, Python, C++, C | No | Yes | Yes | Yes | Yes | Yes | ? | Yes | ||
PyTorch | Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan | BSD | Yes | Linux, macOS, Windows | Python, C, CUDA | Python | Yes | Via separately maintained package[45][46][47] | Yes | Yes | Yes | Yes | Yes | Yes | ||
Apache SINGA | Apache Incubator | Apache 2.0 | Yes | Linux, macOS, Windows | C++ | Python, C++, Java | No | Supported in V1.0 | Yes | ? | Yes | Yes | Yes | Yes | Yes | |
TensorFlow | Google Brain team | Apache 2.0 | Yes | Linux, macOS, Windows,[48] Android | C++, Python, CUDA | Python (Keras), C/C++, Java, Go, JavaScript, R[49], Julia, Swift | No | On roadmap[50] but already with SYCL[51] support | Yes | Yes[52] | Yes[53] | Yes | Yes | Yes | Yes | |
TensorLayer | Hao Dong | Apache 2.0 | Yes | Linux, macOS, Windows,[54] Android | C++, Python, | Python | No | On roadmap[50] but already with SYCL[51] support | Yes | Yes[55] | Yes[56] | Yes | Yes | Yes | Yes | |
Theano | Université de Montréal | BSD | Yes | Cross-platform | Python | Python (Keras) | Yes | Under development[57] | Yes | Yes[58][59] | Through Lasagne's model zoo[60] | Yes | Yes | Yes | Yes[61] | No |
Torch | Ronan Collobert, Koray Kavukcuoglu, Clement Farabet | BSD | Yes | Linux, macOS, Windows,[62] Android,[63] iOS | C, Lua | Lua, LuaJIT,[64] C, utility library for C++/OpenCL[65] | Yes | Third party implementations[66][67] | Yes[68][69] | Through Twitter's Autograd[70] | Yes[71] | Yes | Yes | Yes | Yes[72] | |
Wolfram Mathematica | Wolfram Research | Proprietary | No | Windows, macOS, Linux, Cloud computing | C++, Wolfram Language, CUDA | Wolfram Language | Yes | No | Yes | Yes | Yes[73] | Yes | Yes | Yes | Under Development | |
VerAI | VerAI | Proprietary | No | Linux, Web-based | C++,Python, Go, Angular | Graphical user interface, cli | No | No | Yes | Yes | Yes | Yes | 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
Related software
- 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
See also
- Comparison of numerical analysis software
- Comparison of statistical packages
- List of datasets for machine learning research
- List of numerical analysis software
References
- ^ Atilim Gunes Baydin; Barak A. Pearlmutter; Alexey Andreyevich Radul; Jeffrey Mark Siskind (20 February 2015). "Automatic differentiation in machine learning: a survey". arXiv:1502.05767 [cs.LG].
- ^ "Microsoft/caffe". GitHub.
- ^ "OpenCL Caffe".
- ^ "Caffe Model Zoo".
- ^ "Support for Open CL · Issue #27 · deeplearning4j/nd4j". GitHub.
- ^ "N-Dimensional Scientific Computing for Java".
- ^ "Comparing Top Deep Learning Frameworks". Deeplearning4j.
- ^ Chris Nicholson; Adam Gibson. "Deeplearning4j Models".
- ^ Deeplearning4j. "Deeplearning4j on Spark". Deeplearning4j.
{{cite web}}
: CS1 maint: numeric names: authors list (link) - ^ https://github.com/chainer/chainer/pull/2717
- ^ https://github.com/chainer/chainer/issues/99
- ^ https://github.com/pjreddie/darknet/issues/127
- ^ https://github.com/clab/dynet/issues/405
- ^ https://www.fast.ai/2017/11/16/what-you-need/
- ^ https://www.fast.ai/2017/11/16/what-you-need/
- ^ a b Intel® Data Analytics Acceleration Library (Intel® DAAL) | Intel® Software
- ^ Intel® Math Kernel Library (Intel® MKL) | Intel® Software
- ^ Deep Neural Network Functions
- ^ Using Intel® MKL with Threaded Applications | Intel® Software
- ^ a b Intel® Xeon Phi™ Delivers Competitive Performance For Deep Learning—And Getting Better Fast | Intel® Software
- ^ https://keras.io/applications/
- ^ Does Keras support using multiple GPUs? · Issue #2436 · fchollet/keras
- ^ "GPU Coder - MATLAB & Simulink". MathWorks. Retrieved 13 November 2017.
- ^ a b c "Neural Network Toolbox - MATLAB". MathWorks. Retrieved 13 November 2017.
- ^ "Deep Learning Models - MATLAB & Simulink". MathWorks. Retrieved 13 November 2017.
- ^ "Parallel Computing Toolbox - MATLAB". MathWorks. Retrieved 13 November 2017.
- ^ "CNTK/LICENSE.md at master · Microsoft/CNTK · GitHub". GitHub.
- ^ "Setup CNTK on your machine". GitHub.
- ^ "CNTK usage overview". GitHub.
- ^ "BrainScript Network Builder". GitHub.
- ^ ".NET Support · Issue #960 · 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 "CNTK - Computational Network Toolkit". Microsoft Corporation.
- ^ url=https://github.com/Microsoft/CNTK/issues/534
- ^ "Multiple GPUs and machines". Microsoft Corporation.
- ^ "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.
- ^ https://mxnet.readthedocs.io/
- ^ "Model Gallery". GitHub.
- ^ "Run MXNet on Multiple CPU/GPUs with Data Parallel". GitHub.
- ^ https://github.com/hughperkins/pytorch-coriander
- ^ https://github.com/pytorch/pytorch/issues/488
- ^ https://github.com/pytorch/pytorch/issues/488#issuecomment-273626736
- ^ https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html
- ^ interface), JJ Allaire (R; RStudio; Eddelbuettel, Dirk; Golding, Nick; Tang, Yuan; Tutorials), Google Inc (Examples and (2017-05-26), tensorflow: R Interface to TensorFlow, retrieved 2017-06-14
{{citation}}
:|first6=
has generic name (help) - ^ a b "tensorflow/roadmap.md at master · tensorflow/tensorflow · GitHub". GitHub. January 23, 2017. Retrieved May 21, 2017.
- ^ a b "OpenCL support · Issue #22 · tensorflow/tensorflow". GitHub.
- ^ https://www.tensorflow.org/
- ^ https://github.com/tensorflow/models
- ^ https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html
- ^ https://www.tensorflow.org/
- ^ https://github.com/tensorflow/models
- ^ "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.
- ^ Using multiple GPUs — Theano 0.8.2 documentation
- ^ https://github.com/torch/torch7/wiki/Windows
- ^ "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.
- ^ "cltorch". GitHub.
- ^ "Torch CUDA backend". GitHub.
- ^ "Torch CUDA backend for nn". GitHub.
- ^ https://github.com/twitter/torch-autograd
- ^ "ModelZoo". GitHub.
- ^ https://github.com/torch/torch7/wiki/Cheatsheet#distributed-computing--parallel-processing
- ^ http://resources.wolframcloud.com/NeuralNetRepository