The following tables compare notable software frameworks, libraries, and computer programs for deep learning applications.
Software | Creator | Initial release | Software license [a] | Open source | Platform | Written in | Interface | OpenMP support | OpenCL support | CUDA support | Automatic differentiation [2] | Has pretrained models | 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 [3] | C++ | Python, MATLAB, C++ | Yes | Under development [4] | Yes | No | Yes | Yes [5] | Yes | Yes | No | ? | No [6] |
Chainer | Preferred Networks | 2015 | BSD | Yes | Linux, macOS | Python | Python | No | No | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No [7] |
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 [8] | Yes [9] [10] | No | Computational Graph | Yes [11] | Yes | Yes | Yes | Yes [12] | 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 [13] | Yes | Yes | No | Yes | Yes | ||
Intel Data Analytics Acceleration Library | Intel | 2015 | Apache License 2.0 | Yes | Linux, macOS, Windows on Intel CPU [14] | C++, Python, Java | C++, Python, Java [14] | Yes | No | No | No | Yes | No | Yes | Yes | Yes | ||
Intel Math Kernel Library 2017 [15] and later | Intel | 2017 | Proprietary | No | Linux, macOS, Windows on Intel CPU [16] | C/C++, DPC++, Fortran | C [17] | Yes [18] | No | No | No | Yes | No | Yes [19] | Yes [19] | No | Yes | |
Google JAX | 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 [20] | Yes | Yes | No [21] | Yes [22] | 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 [23] | No | Yes [24] | Yes [25] [26] | Yes [25] | Yes [25] | Yes | With Parallel Computing Toolbox [27] | Yes |
Microsoft Cognitive Toolkit (CNTK) | Microsoft Research | 2016 | MIT license [28] | Yes | Windows, Linux [29] (macOS via Docker on roadmap) | C++ | Python (Keras), C++, Command line, [30] BrainScript [31] (.NET on roadmap [32] ) | Yes [33] | No | Yes | No | Yes | Yes [34] | Yes [35] | Yes [35] | No [36] | Yes [37] | No [38] |
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, [39] [40] AWS, Android, [41] iOS, JavaScript [42] | Small C++ core library | C++, Python, Julia, MATLAB, JavaScript, Go, R, Scala, Perl, Clojure | Yes | No | Yes | No | Yes [43] | Yes [44] | Yes | Yes | Yes | Yes [45] | 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 [46] | Python, C, C++, CUDA | Python, C++, Julia, R [47] | Yes | Via separately maintained package [48] [49] [50] | Yes | Yes | Yes | Yes | Yes | Yes | Yes [51] | 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, [52] [53] Android | C++, Python, CUDA | Python (Keras), C/C++, Java, Go, JavaScript, R, [54] Julia, Swift | No | On roadmap [55] but already with SYCL [56] support | Yes | Yes | Yes [57] | Yes [58] | Yes | Yes | Yes | Yes | Yes |
Theano | Université de Montréal | 2007 | BSD | Yes | Cross-platform | Python | Python (Keras) | Yes | Under development [59] | Yes | No | Yes [60] [61] | Through Lasagne's model zoo [62] | Yes | Yes | Yes | Yes [63] | No |
Torch | Ronan Collobert, Koray Kavukcuoglu, Clement Farabet | 2002 | BSD | Yes | Linux, macOS, Windows, [64] Android, [65] iOS | C, Lua | Lua, LuaJIT, [66] C, utility library for C++/OpenCL [67] | Yes | Third party implementations [68] [69] | Yes [70] [71] | No | Through Twitter's Autograd [72] | Yes [73] | Yes | Yes | Yes | Yes [64] | No |
Wolfram Mathematica 10 [74] and later | Wolfram Research | 2014 | Proprietary | No | Windows, macOS, Linux, Cloud computing | C++, Wolfram Language, CUDA | Wolfram Language | Yes | No | Yes | No | Yes | Yes [75] | Yes | Yes | Yes | Yes [76] | Yes |
Software | Creator | Initial release | Software license [a] | Open source | Platform | Written in | Interface | OpenMP support | OpenCL support | CUDA support | Automatic differentiation [2] | Has pretrained models | Parallel execution (multi node) | Actively developed |
[ 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 |
{{cite web}}
: CS1 maint: numeric names: authors list (link)