The following table compares notable software frameworks, libraries and computer programs for deep learning.
Software | Creator | Initial release | Software license[lower-alpha 1] | 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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BigDL | Jason Dai (Intel) | 2016 | Apache 2.0 | Yes | Apache Spark | Scala | Scala, Python | No | Yes | Yes | Yes | ||||||
Caffe | Berkeley Vision and Learning Center | 2013 | BSD | Yes | Linux, macOS, Windows[2] | C++ | Python, MATLAB, C++ | Yes | Under development[3] | Yes | Yes | Yes[4] | Yes | Yes | No | ? | No[5] |
Chainer | Preferred Networks | 2015 | BSD | Yes | Linux, macOS | Python | Python | No | No | Yes | Yes | Yes | Yes | Yes | No | Yes | No[6] |
Deeplearning4j | Skymind engineering team; Deeplearning4j community; originally Adam Gibson | 2014 | Apache 2.0 | Yes | Linux, macOS, Windows, Android (Cross-platform) | C++, Java | Java, Scala, Clojure, Python (Keras), Kotlin | Yes | No[7] | Yes[8][9] | Computational Graph | Yes[10] | Yes | Yes | Yes | Yes[11] | Yes |
Dlib | Davis King | 2002 | Boost Software License | Yes | Cross-platform | C++ | C++, Python | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | |
Flux | Mike Innes | 2017 | MIT license | Yes | Linux, MacOS, Windows (Cross-platform) | Julia | Julia | Yes | Yes | Yes[12] | Yes | Yes | No | Yes | Yes | ||
Intel Data Analytics Acceleration Library | Intel | 2015 | Apache License 2.0 | Yes | Linux, macOS, Windows on Intel CPU[13] | C++, Python, Java | C++, Python, Java[13] | Yes | No | No | Yes | No | Yes | Yes | |||
Intel Math Kernel Library | Intel | Proprietary | No | Linux, macOS, Windows on Intel CPU[14] | C[15] | Yes[16] | No | No | Yes | No | Yes[17] | Yes[17] | No | ||||
Keras | François Chollet | 2015 | MIT license | Yes | Linux, macOS, Windows | Python | Python, R | Only if using Theano as backend | Can use Theano, Tensorflow or PlaidML as backends | Yes | Yes | Yes[18] | Yes | Yes | No[19] | Yes[20] | Yes |
MATLAB + Deep Learning 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[21] | Yes[22] | Yes[23][24] | Yes[23] | Yes[23] | Yes | With Parallel Computing Toolbox[25] | Yes | |
Microsoft Cognitive Toolkit (CNTK) | Microsoft Research | 2016 | MIT license[26] | Yes | Windows, Linux[27] (macOS via Docker on roadmap) | C++ | Python (Keras), C++, Command line,[28] BrainScript[29] (.NET on roadmap[30]) | Yes[31] | No | Yes | Yes | Yes[32] | Yes[33] | Yes[33] | No[34] | Yes[35] | No[36] |
Apache MXNet | Apache Software Foundation | 2015 | 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, Clojure | Yes | On roadmap[41] | Yes | Yes[42] | Yes[43] | Yes | Yes | Yes | Yes[44] | Yes |
Neural Designer | Artelnics | 2014 | Proprietary | No | Linux, macOS, Windows | C++ | Graphical user interface | Yes | No | Yes | Analytical differentiation | No | No | No | No | Yes | Yes |
OpenNN | Artelnics | 2003 | GNU LGPL | Yes | Cross-platform | C++ | C++ | Yes | No | Yes | ? | ? | No | No | No | ? | |
PlaidML | Vertex.AI, Intel | 2017 | Apache 2.0 | Yes | Linux, macOS, Windows | Python, C++, OpenCL | Python, C++ | ? | Some OpenCL ICDs are not recognized | No | Yes | Yes | Yes | Yes | Yes | Yes | |
PyTorch | Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan (Facebook) | 2016 | BSD | Yes | Linux, macOS, Windows | Python, C, C++, CUDA | Python, C++, Julia | Yes | Via separately maintained package[45][46] | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Seq2SeqSharp | Zhongkai Fu | 2018 | BSD | Yes | Linux, macOS, Windows | C#, C, C++, CUDA | C# | Yes | No | Yes | Yes | Yes | Yes | No | No | Yes | Yes |
Apache SINGA | Apache Software Foundation | 2015 | 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 | 2015 | Apache 2.0 | Yes | Linux, macOS, Windows,[47][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 | Yes |
Theano | Université de Montréal | 2007 | BSD | Yes | Cross-platform | Python | Python (Keras) | Yes | Under development[54] | Yes | Yes[55][56] | Through Lasagne's model zoo[57] | Yes | Yes | Yes | Yes[58] | No |
Torch | Ronan Collobert, Koray Kavukcuoglu, Clement Farabet | 2002 | BSD | Yes | Linux, macOS, Windows,[59] Android,[60] iOS | C, Lua | Lua, LuaJIT,[61] C, utility library for C++/OpenCL[62] | Yes | Third party implementations[63][64] | Yes[65][66] | Through Twitter's Autograd[67] | Yes[68] | Yes | Yes | Yes | Yes[59] | No |
Wolfram Mathematica | Wolfram Research | 1988 | Proprietary | No | Windows, macOS, Linux, Cloud computing | C++, Wolfram Language, CUDA | Wolfram Language | Yes | No | Yes | Yes | Yes[69] | Yes | Yes | Yes | Yes[70] | Yes |
Software | Creator | Initial release | Software license[lower-alpha 1] | Open source | Platform | Written in | Interface | OpenMP support | OpenCL support | CUDA support | Automatic differentiation[71] | Has pretrained models | Recurrent nets | Convolutional nets | RBM/DBNs | Parallel execution (multi node) | Actively developed |
Format name | Design goal | Compatible with other formats | Self-contained DNN Model | Pre-processing and Post-processing | Run-time configuration for tuning & calibration | DNN model interconnect | Common platform |
---|---|---|---|---|---|---|---|
TensorFlow, Keras, Caffe, Torch, ONNX, | Algorithm training | No | No / Separate files in most formats | No | No | No | Yes |
ONNX | Algorithm training | Yes | No / Separate files in most formats | No | No | No | Yes |