Comparison of deep learning software explained

The following table compares notable software frameworks, libraries and computer programs for deep learning.

Deep-learning software by name

SoftwareCreatorInitial releaseSoftware licenseOpen sourcePlatformWritten inInterfaceOpenMP supportOpenCL supportCUDA supportROCm support[1] Automatic differentiation[2] Has pretrained modelsRecurrent netsConvolutional netsRBM/DBNsParallel execution (multi node)Actively developed
BigDLJason Dai (Intel)2016Apache SparkScalaScala, Python
CaffeBerkeley Vision and Learning Center2013Linux, macOS, Windows[3] C++Python, MATLAB, C++[4]
ChainerPreferred Networks2015Linux, macOSPythonPython
Skymind engineering team; Deeplearning4j community; originally Adam Gibson2014Linux, macOS, Windows, Android (Cross-platform)C++, JavaJava, Scala, Clojure, Python (Keras), Kotlin[5] [6] [7] [8] [9] Yes
DlibDavis King2002Cross-platformC++C++, Python
FluxMike Innes2017Linux, MacOS, Windows (Cross-platform)JuliaJulia[10]
Intel Data Analytics Acceleration LibraryIntel2015Linux, macOS, Windows on Intel CPU[11] C++, Python, JavaC++, Python, Java
Intel Math Kernel Library 2017 [12] and laterIntel2017Linux, macOS, Windows on Intel CPU[13] C[14] [15] [16]
Google JAXGoogle2018Linux, macOS, WindowsPythonPython
KerasFrançois Chollet2015Linux, macOS, WindowsPythonPython, R[17] [18] [19]
MATLAB + Deep Learning Toolbox (formally Neural Network Toolbox)1992[20] [21] [22] [23] [24]
Microsoft Cognitive Toolkit (CNTK)Microsoft Research2016[25] Windows, Linux[26] (macOS via Docker on roadmap)C++Python (Keras), C++, Command line,[27] BrainScript[28] (.NET on roadmap[29])[30] [31] [32] [33] [34] [35]
ML.NETMicrosoftYesWindows, Linux, macOSC#, F#Yes
Apache MXNetApache Software Foundation2015Linux, macOS, Windows,[36] [37] AWS, Android,[38] iOS, JavaScript[39] Small C++ core libraryC++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl, Clojure[40] [41] [42]
Neural DesignerArtelnics2014Linux, macOS, WindowsC++Graphical user interface
OpenNNArtelnics2003Cross-platformC++C++
PlaidMLVertex.AI, Intel2017Linux, macOS, WindowsPython, C++, OpenCLPython, C++
PyTorchAdam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan (Facebook)2016Linux, macOS, Windows, Android[43] Python, C, C++, CUDAPython, C++, Julia, R[44] [45] [46] [47] [48]
Apache SINGAApache Software Foundation2015Linux, macOS, WindowsC++Python, C++, Java
TensorFlowGoogle Brain2015Linux, macOS, Windows,[49] [50] AndroidC++, Python, CUDAPython (Keras), C/C++, Java, Go, JavaScript, R,[51] Julia, Swift[52] but already with SYCL[53] support[54] [55]
TheanoUniversité de Montréal2007Cross-platformPythonPython (Keras)[56] [57] [58]
TorchRonan Collobert, Koray Kavukcuoglu, Clement Farabet2002Linux, macOS, Windows,[59] Android,[60] iOSC, LuaLua, LuaJIT,[61] C, utility library for C++/OpenCL[62] [63] [64] [65]
Wolfram Mathematica 10[66] and laterWolfram Research2014Windows, macOS, Linux, Cloud computingC++, Wolfram Language, CUDAWolfram Language[67] [68]
SoftwareCreatorInitial releaseSoftware licenseOpen sourcePlatformWritten inInterfaceOpenMP supportOpenCL supportCUDA supportROCm support[69] Automatic differentiationHas pretrained modelsRecurrent netsConvolutional netsRBM/DBNsParallel execution (multi node)Actively developed

Comparison of compatibility of machine learning models

!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, TorchAlgorithm training / Separate files in most formats
ONNXAlgorithm training / Separate files in most formats

See also

Notes and References

  1. Web site: Deep Learning — ROCm 4.5.0 documentation . 2022-09-27 . 2022-12-05 . https://web.archive.org/web/20221205102733/https://rocmdocs.amd.com/en/latest/Deep_learning/Deep-learning.html . dead .
  2. Atilim Gunes Baydin . Barak A. Pearlmutter . Alexey Andreyevich Radul . Jeffrey Mark Siskind . 1502.05767 . Automatic differentiation in machine learning: a survey . cs.LG . 20 February 2015.
  3. Web site: Microsoft/caffe. GitHub. 30 October 2021.
  4. Web site: Caffe | Model Zoo. caffe.berkeleyvision.org.
  5. Web site: Support for Open CL · Issue #27 · deeplearning4j/nd4j. GitHub.
  6. Web site: N-Dimensional Scientific Computing for Java. 2016-02-05. 2016-10-16. https://web.archive.org/web/20161016094035/http://nd4j.org/gpu_native_backends.html. dead.
  7. Web site: Comparing Top Deep Learning Frameworks. Deeplearning4j. 2017-10-31. https://web.archive.org/web/20171107011631/https://deeplearning4j.org/compare-dl4j-tensorflow-pytorch. 2017-11-07. dead.
  8. Web site: Deeplearning4j Models. Chris Nicholson. Adam Gibson. 2016-03-02. https://web.archive.org/web/20170211020819/https://deeplearning4j.org/model-zoo. 2017-02-11. dead.
  9. Web site: Deeplearning4j on Spark. Deeplearning4j. Deeplearning4j. 2016-09-01. https://web.archive.org/web/20170713012632/https://deeplearning4j.org/spark. 2017-07-13. dead.
  10. Web site: Metalhead. 29 October 2021. FluxML.
  11. Web site: Intel® Data Analytics Acceleration Library (Intel® DAAL). November 20, 2018. software.intel.com.
  12. Web site: Intel® Math Kernel Library Release Notes and New Features. Intel.
  13. Web site: Intel® Math Kernel Library (Intel® MKL). September 11, 2018. software.intel.com.
  14. Web site: Deep Neural Network Functions. May 24, 2019. software.intel.com.
  15. Web site: Using Intel® MKL with Threaded Applications. June 1, 2017. software.intel.com.
  16. Web site: Intel® Xeon Phi™ Delivers Competitive Performance For Deep Learning—And Getting Better Fast. March 21, 2019. software.intel.com.
  17. Web site: Applications - Keras Documentation. keras.io.
  18. Web site: Is there RBM in Keras? · Issue #461 · keras-team/keras. GitHub.
  19. Web site: Does Keras support using multiple GPUs? · Issue #2436 · keras-team/keras. GitHub.
  20. Web site: GPU Coder - MATLAB & Simulink. MathWorks. 13 November 2017.
  21. Web site: Automatic Differentiation Background - MATLAB & Simulink . MathWorks . September 3, 2019 . November 19, 2019.
  22. Web site: Neural Network Toolbox - MATLAB. MathWorks. 13 November 2017.
  23. Web site: Deep Learning Models - MATLAB & Simulink. MathWorks. 13 November 2017.
  24. Web site: Parallel Computing Toolbox - MATLAB. MathWorks. 13 November 2017.
  25. Web site: CNTK/LICENSE.md at master · Microsoft/CNTK · GitHub. GitHub.
  26. Web site: Setup CNTK on your machine. GitHub.
  27. Web site: CNTK usage overview. GitHub.
  28. Web site: BrainScript Network Builder. GitHub.
  29. Web site: .NET Support · Issue #960 · Microsoft/CNTK. GitHub.
  30. Web site: How to train a model using multiple machines? · Issue #59 · Microsoft/CNTK. GitHub.
  31. Web site: Prebuilt models for image classification · Issue #140 · microsoft/CNTK. GitHub.
  32. Web site: CNTK - Computational Network Toolkit. Microsoft Corporation.
  33. Web site: Restricted Boltzmann Machine with CNTK #534. GitHub, Inc.. 27 May 2016. 30 October 2023.
  34. Web site: Multiple GPUs and machines. Microsoft Corporation.
  35. Web site: Disclaimer. 6 November 2021. CNTK TEAM.
  36. Web site: Releases · dmlc/mxnet. Github.
  37. Web site: Installation Guide — mxnet documentation. Readthdocs.
  38. Web site: MXNet Smart Device. ReadTheDocs. 2016-05-19. https://web.archive.org/web/20160921205959/http://mxnet.readthedocs.io/en/latest/how_to/smart_device.html. 2016-09-21. dead.
  39. Web site: MXNet.js. Github. 28 October 2021.
  40. Web site: — Redirecting to mxnet.io. mxnet.readthedocs.io.
  41. Web site: Model Gallery. GitHub. 29 October 2022 .
  42. Web site: Run MXNet on Multiple CPU/GPUs with Data Parallel. GitHub.
  43. Web site: PyTorch. Dec 17, 2021.
  44. Web site: Falbel D, Luraschi J (2023). torch: Tensors and Neural Networks with 'GPU' Acceleration.. 2023-11-28 . torch.mlverse.org . en-us.
  45. Web site: OpenCL build of pytorch: (in-progress, not useable) - hughperkins/pytorch-coriander. July 14, 2019. GitHub.
  46. Web site: DLPrimitives/OpenCL out of tree backend for pytorch - artyom-beilis/pytorch_dlprim. Jan 21, 2022. GitHub.
  47. Web site: OpenCL Support · Issue #488 · pytorch/pytorch. GitHub.
  48. Web site: Restricted Boltzmann Machines (RBMs) in PyTorch. GitHub. 14 November 2022 .
  49. Web site: Install TensorFlow with pip.
  50. Web site: TensorFlow 0.12 adds support for Windows.
  51. Web site: tensorflow: R Interface to 'TensorFlow'. Allaire, J.J.. Kalinowski, T.. Falbel, D.. Eddelbuettel, D.. Yuan, T.. Golding, N.. The Comprehensive R Archive Network. 28 September 2023. 30 October 2023.
  52. Web site: tensorflow/roadmap.md at master · tensorflow/tensorflow · GitHub . GitHub . January 23, 2017 . May 21, 2017 .
  53. Web site: OpenCL support · Issue #22 · tensorflow/tensorflow. GitHub.
  54. Web site: TensorFlow. TensorFlow.
  55. Web site: Models and examples built with TensorFlow.. July 19, 2019. GitHub.
  56. Web site: gradient – Symbolic Differentiation — Theano 1.0.0 documentation. deeplearning.net.
  57. Web site: Automatic vs. Symbolic differentiation.
  58. Web site: Using multiple GPUs — Theano 1.0.0 documentation. deeplearning.net.
  59. Web site: torch/torch7. July 18, 2019. GitHub.
  60. Web site: GitHub - soumith/torch-android: Torch-7 for Android. GitHub. 13 October 2021.
  61. Web site: Torch7: A Matlab-like Environment for Machine Learning.
  62. Web site: GitHub - jonathantompson/jtorch: An OpenCL Torch Utility Library. GitHub. 18 November 2020.
  63. Web site: Torch CUDA backend. GitHub.
  64. Web site: Torch CUDA backend for nn. GitHub.
  65. Web site: ModelZoo. GitHub.
  66. Web site: Launching Mathematica 10. Wolfram.
  67. Web site: Wolfram Neural Net Repository of Neural Network Models. resources.wolframcloud.com.
  68. Web site: Parallel Computing—Wolfram Language Documentation. reference.wolfram.com.
  69. Web site: Deep Learning — ROCm 4.5.0 documentation . 2022-09-27 . 2022-12-05 . https://web.archive.org/web/20221205102733/https://rocmdocs.amd.com/en/latest/Deep_learning/Deep-learning.html . dead .