Comparison of deep learning software
In-game article clicks load inline without leaving the challenge.
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 |
| DeepSpeed | Microsoft | 2019 | Apache 2.0 | Yes | Linux, macOS, Windows | Python, C++, CUDA | Python | No | No | Yes | No | Yes | Yes | Yes | Yes | No | 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 |
| Fastai | fast.ai | 2018 | Apache 2.0 | Yes | Linux, macOS, Windows | Python, CUDA | Python | No | No | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes |
| Flux | Mike Innes | 2017 | MIT | Yes | Linux, macOS, Windows (Cross-platform) | Julia | Julia | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes | ||
| Horovod | Uber Technologies | 2017 | Apache 2.0 | Yes | Linux, macOS, Windows | Python, C++, CUDA | Python | No | No | Yes | No | Yes | Yes | Yes | Yes | No | Yes | Yes |
| Intel Data Analytics Acceleration Library | Intel | 2015 | Apache 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 | 2018 | Apache 2.0 | Yes | Linux, macOS, Windows | Python | Python | Only on Linux | No | Yes | No | Yes | Yes | ||||||
| Keras | François Chollet | 2015 | MIT | 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 (formerly 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 | 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 |
| MindSpore | Huawei | 2020 | Apache 2.0 | Yes | Linux, Windows, macOS, EulerOS, openEuler, OpenHarmony, Oniro OS, HarmonyOS, Android | C++, Rust, Julia, Python, ArkTS, Cangjie, Java (Lite) | ||||||||||||
| ML.NET | Microsoft | 2018 | MIT | 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 | ? | Yes | 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 | Meta AI | 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 |
| PyTorch Lightning | Lightning-AI (originally William Falcon) | 2019 | Apache 2.0 | Yes | Linux, macOS, Windows | Python | Python | Yes | Via PyTorch | 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 |
| RANT (Real-time Artificial Neural Tool) | Douglas Santry | 2023 | BSD | Yes | Linux, macOS, Windows | C++, Python | C++, Python | No | No | No | No | No | Yes | No | Yes | No | No | Yes |
| 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 |
Comparison of machine learning model compatibility
[further explanation needed]
| 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 |
See also
- Comparison of machine learning software
- Comparison of numerical-analysis software
- Comparison of statistical packages
- Comparison of cognitive architectures
- Lists of open-source artificial intelligence software
- List of datasets for machine-learning research
- List of numerical-analysis software
- MLIR compiler — sub-project of the LLVM designed for machine learning, hardware acceleration, and high-level synthesis.
- tinygrad — being developed by George Hotz