# Comparison of deep learning software

The following tables compare notable software frameworks, libraries, and computer programs for deep learning applications.

## Deep learning software by name

| Software | Creator | Initial release | Software license | Open source | Platform | Written in | Interface | OpenMP support | OpenCL support | CUDA support | ROCm support | Automatic differentiation | 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 | No | | Yes | Yes | Yes | | | Yes |
| Caffe | Berkeley Vision and Learning Center | 2013 | BSD | Yes | Linux, macOS, Windows | C++ | Python, MATLAB, C++ | Yes | Under development | Yes | No | Yes | Yes | Yes | Yes | No | ? | No |
| Chainer | Preferred Networks | 2015 | BSD | Yes | Linux, macOS | Python | Python | No | No | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No |
| 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 | Yes | No | Computational Graph | Yes | Yes | Yes | Yes | Yes | Yes |
| Dlib | Davis King | 2002 | Boost Software License | Yes | Cross-platform | C++ | C++, Python | Yes | No | Yes | No | Yes | Yes | No | Yes | Yes | Yes | Yes |
| Flux | Mike Innes | 2017 | MIT license | Yes | Linux, MacOS, Windows (Cross-platform) | Julia | Julia | | | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes |
| Intel Data Analytics Acceleration Library | Intel | 2015 | Apache License 2.0 | Yes | Linux, macOS, Windows on Intel CPU | C++, Python, Java | C++, Python, Java | Yes | No | No | No | Yes | No | | Yes | | Yes | Yes |
| Intel Math Kernel Library 2017 and later | Intel | 2017 | Proprietary | No | Linux, macOS, Windows on Intel CPU | C/C++, DPC++, Fortran | C | Yes | No | No | No | Yes | No | Yes | Yes | | No | Yes |
| Google JAX | Google | 2018 | Apache License 2.0 | Yes | Linux, macOS, Windows | Python | Python | | | Only on Linux | No | Yes | No | | | | Yes | Yes |
| 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 | No | Yes | Yes | Yes | Yes | No | Yes | Yes |
| MATLAB + Deep Learning Toolbox (formally Neural Network Toolbox) | MathWorks | 1992 | Proprietary | No | Linux, macOS, Windows | C, C++, Java, MATLAB | MATLAB | No | No | Train with Parallel Computing Toolbox and generate CUDA code with GPU Coder | No | Yes | Yes | Yes | Yes | Yes | With Parallel Computing Toolbox | Yes |
| Microsoft Cognitive Toolkit (CNTK) | Microsoft Research | 2016 | MIT license | Yes | Windows, Linux (macOS via Docker on roadmap) | C++ | Python (Keras), C++, Command line, BrainScript (.NET on roadmap) | Yes | No | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No |
| ML.NET | Microsoft | 2018 | MIT license | Yes | Windows, Linux, macOS | C#, C++ | C#, F# | | | | | | | | | | | Yes |
| Apache MXNet | Apache Software Foundation | 2015 | Apache 2.0 | Yes | Linux, macOS, Windows, AWS, Android, iOS, JavaScript | Small C++ core library | C++, Python, Julia, MATLAB, JavaScript, Go, R, Scala, Perl, Clojure | Yes | No | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | No |
| Neural Designer | Artelnics | 2014 | Proprietary | No | Linux, macOS, Windows | C++ | Graphical user interface | Yes | No | Yes | No | Analytical differentiation | No | No | No | No | Yes | Yes |
| OpenNN | Artelnics | 2003 | GNU LGPL | Yes | Cross-platform | C++ | C++ | Yes | No | Yes | No | ? | ? | No | No | No | ? | Yes |
| PlaidML | Vertex.AI, Intel | 2017 | Apache 2.0 | Yes | Linux, macOS, Windows | Python, C++, OpenCL | Python, C++ | ? | Some OpenCL ICDs are not recognized | No | No | Yes | Yes | Yes | Yes | | Yes | Yes |
| PyTorch | Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan (Facebook) | 2016 | BSD | Yes | Linux, macOS, Windows, Android | Python, C, C++, CUDA | Python, C++, Julia, R | Yes | Via separately maintained package | Yes | Yes | Yes | Yes | Yes | Yes | Yes | 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 | No | ? | Yes | Yes | Yes | Yes | Yes | Yes |
| TensorFlow | Google Brain | 2015 | Apache 2.0 | Yes | Linux, macOS, Windows, Android | C++, Python, CUDA | Python (Keras), C/C++, Java, Go, JavaScript, R, Julia, Swift | No | On roadmap but already with SYCL support | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Theano | Université de Montréal | 2007 | BSD | Yes | Cross-platform | Python | Python (Keras) | Yes | Under development | Yes | No | Yes | Through Lasagne's model zoo | Yes | Yes | Yes | Yes | No |
| Torch | Ronan Collobert, Koray Kavukcuoglu, Clement Farabet | 2002 | BSD | Yes | Linux, macOS, Windows, Android, iOS | C, Lua | Lua, LuaJIT, C, utility library for C++/OpenCL | Yes | Third party implementations | Yes | No | Through Twitter's Autograd | Yes | Yes | Yes | Yes | Yes | No |
| Wolfram Mathematica 10 and later | Wolfram Research | 2014 | Proprietary | No | Windows, macOS, Linux, Cloud computing | C++, Wolfram Language, CUDA | Wolfram Language | Yes | No | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Software | Creator | Initial release | Software license | Open source | Platform | Written in | Interface | OpenMP support | OpenCL support | CUDA support | ROCm support | Automatic differentiation | Has pretrained models | Recurrent nets | Convolutional nets | RBM/DBNs | Parallel execution (multi node) | Actively developed |
* 1 2 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

## Comparison of machine learning model compatibility

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