Jump to content

Comparison of deep learning software

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by ProGrammar (talk | contribs) at 22:12, 16 November 2018 (Added colored cells). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The following table compares some of the most popular software frameworks, libraries and computer programs for deep learning.


Deep learning software by name

Software Creator Software license[a] 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

Seq2SeqSharp Zhongkai Fu BSD Yes Windows C# C# No No Yes Yes Yes Yes No No Yes Yes
roNNie.ai Kevin Lok MIT license Yes Linux, macOS, Windows Python Python Yes Yes Yes Yes
BigDL Jason Dai Apache 2.0 Yes Apache Spark Scala Scala, Python No Yes Yes Yes
Caffe Berkeley Vision and Learning Center BSD Yes Linux, macOS, Windows[2] C++ Python, MATLAB, C++ Yes Under development[3] Yes Yes Yes[4] Yes Yes No ?
Deeplearning4j Skymind engineering team; Deeplearning4j community; originally Adam Gibson Apache 2.0 Yes Linux, macOS, Windows, Android (Cross-platform) C++, Java Java, Scala, Clojure, Python (Keras), Kotlin Yes No[5] Yes[6][7] Computational Graph Yes[8] Yes Yes Yes Yes[9]
Chainer Preferred Networks MIT license Yes Linux, macOS, Windows Python No No[10][11] Yes Yes Yes Yes Yes
Darknet Joseph Redmon Public Domain Yes Cross-Platform C C, Python Yes No[12] Yes Yes
Dlib Davis King Boost Software License Yes Cross-Platform C++ C++ Yes No Yes Yes Yes No Yes Yes Yes
DataMelt (DMelt) S.Chekanov Freemium Yes Cross-Platform Java Java No No No No No Yes Yes Yes Yes
DyNet Carnegie Mellon University Apache 2.0 Yes Linux, macOS, Windows C++, Python No[13] Yes Yes Yes
fastai library fast.ai research lab

Jeremy Howard Dr. Rachel Thomas

Apache 2.0 Yes Linux, macOS, Windows Python Python ? No[14] Yes[15] ? Yes Yes Yes ? ? Yes
Intel Data Analytics Acceleration Library Intel Apache License 2.0 Yes Linux, macOS, Windows on Intel CPU[16] C++, Python, Java C++, Python, Java[16] Yes No No Yes No Yes Yes
Intel Math Kernel Library Intel Proprietary No Linux, macOS, Windows on Intel CPU[17] C[18] Yes[19] No No Yes No Yes[20] Yes[20] No
Keras François Chollet MIT license Yes Linux, macOS, Windows Python Python, R Only if using Theano as backend Can use Theano or Tensorflow as backends Yes Yes Yes[21] Yes Yes Yes Yes[22]
MATLAB + Neural Network 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[23] No Yes[24][25] Yes[24] Yes[24] No With Parallel Computing Toolbox[26]
Microsoft Cognitive Toolkit Microsoft Research MIT license[27] Yes Windows, Linux[28] (macOS via Docker on roadmap) C++ Python (Keras), C++, Command line,[29] BrainScript[30] (.NET on roadmap[31]) Yes[32] No Yes Yes Yes[33] Yes[34] Yes[34] No[35] Yes[36]
Apache MXNet Apache Software Foundation 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 Yes On roadmap[41] Yes Yes[42] Yes[43] Yes Yes Yes Yes[44]
Neural Designer Artelnics Proprietary No Linux, macOS, Windows C++ Graphical user interface Yes No No ? ? No No No ?
OpenNN Artelnics GNU LGPL Yes Cross-platform C++ C++ Yes No Yes ? ? No No No ?
PaddlePaddle Baidu Apache License Yes Linux, macOS, Windows C++, Python Python No Yes Yes Yes Yes Yes Yes ? Yes
PlaidML Vertex.AI AGPL3 Yes Linux, macOS, Windows C++, Python Keras, Python, C++, C No Yes Yes Yes Yes Yes ? Yes
PyTorch Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan BSD Yes Linux, macOS, Windows Python, C, CUDA Python Yes Via separately maintained package[45][46][47] Yes Yes Yes Yes Yes Yes
Apache SINGA Apache Incubator 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 team Apache 2.0 Yes Linux, macOS, Windows,[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
TensorLayer Hao Dong Apache 2.0 Yes Linux, macOS, Windows,[54] Android C++, Python, Python No On roadmap[50] but already with SYCL[51] support Yes Yes[55] Yes[56] Yes Yes Yes Yes
Theano Université de Montréal BSD Yes Cross-platform Python Python (Keras) Yes Under development[57] Yes Yes[58][59] Through Lasagne's model zoo[60] Yes Yes Yes Yes[61] No
Torch Ronan Collobert, Koray Kavukcuoglu, Clement Farabet BSD Yes Linux, macOS, Windows,[62] Android,[63] iOS C, Lua Lua, LuaJIT,[64] C, utility library for C++/OpenCL[65] Yes Third party implementations[66][67] Yes[68][69] Through Twitter's Autograd[70] Yes[71] Yes Yes Yes Yes[72]
Wolfram Mathematica Wolfram Research Proprietary No Windows, macOS, Linux, Cloud computing C++, Wolfram Language, CUDA Wolfram Language Yes No Yes Yes Yes[73] Yes Yes Yes Under Development
VerAI VerAI Proprietary No Linux, Web-based C++,Python, Go, Angular Graphical user interface, cli No No Yes Yes Yes Yes Yes Yes Yes
  1. ^ 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

See also

References

  1. ^ Atilim Gunes Baydin; Barak A. Pearlmutter; Alexey Andreyevich Radul; Jeffrey Mark Siskind (20 February 2015). "Automatic differentiation in machine learning: a survey". arXiv:1502.05767 [cs.LG].
  2. ^ "Microsoft/caffe". GitHub.
  3. ^ "OpenCL Caffe".
  4. ^ "Caffe Model Zoo".
  5. ^ "Support for Open CL · Issue #27 · deeplearning4j/nd4j". GitHub.
  6. ^ "N-Dimensional Scientific Computing for Java".
  7. ^ "Comparing Top Deep Learning Frameworks". Deeplearning4j.
  8. ^ Chris Nicholson; Adam Gibson. "Deeplearning4j Models".
  9. ^ Deeplearning4j. "Deeplearning4j on Spark". Deeplearning4j.{{cite web}}: CS1 maint: numeric names: authors list (link)
  10. ^ https://github.com/chainer/chainer/pull/2717
  11. ^ https://github.com/chainer/chainer/issues/99
  12. ^ https://github.com/pjreddie/darknet/issues/127
  13. ^ https://github.com/clab/dynet/issues/405
  14. ^ https://www.fast.ai/2017/11/16/what-you-need/
  15. ^ https://www.fast.ai/2017/11/16/what-you-need/
  16. ^ a b Intel® Data Analytics Acceleration Library (Intel® DAAL) | Intel® Software
  17. ^ Intel® Math Kernel Library (Intel® MKL) | Intel® Software
  18. ^ Deep Neural Network Functions
  19. ^ Using Intel® MKL with Threaded Applications | Intel® Software
  20. ^ a b Intel® Xeon Phi™ Delivers Competitive Performance For Deep Learning—And Getting Better Fast | Intel® Software
  21. ^ https://keras.io/applications/
  22. ^ Does Keras support using multiple GPUs? · Issue #2436 · fchollet/keras
  23. ^ "GPU Coder - MATLAB & Simulink". MathWorks. Retrieved 13 November 2017.
  24. ^ a b c "Neural Network Toolbox - MATLAB". MathWorks. Retrieved 13 November 2017.
  25. ^ "Deep Learning Models - MATLAB & Simulink". MathWorks. Retrieved 13 November 2017.
  26. ^ "Parallel Computing Toolbox - MATLAB". MathWorks. Retrieved 13 November 2017.
  27. ^ "CNTK/LICENSE.md at master · Microsoft/CNTK · GitHub". GitHub.
  28. ^ "Setup CNTK on your machine". GitHub.
  29. ^ "CNTK usage overview". GitHub.
  30. ^ "BrainScript Network Builder". GitHub.
  31. ^ ".NET Support · Issue #960 · Microsoft/CNTK". GitHub.
  32. ^ "How to train a model using multiple machines? · Issue #59 · Microsoft/CNTK". GitHub.
  33. ^ https://github.com/Microsoft/CNTK/issues/140#issuecomment-186466820
  34. ^ a b "CNTK - Computational Network Toolkit". Microsoft Corporation.
  35. ^ url=https://github.com/Microsoft/CNTK/issues/534
  36. ^ "Multiple GPUs and machines". Microsoft Corporation.
  37. ^ "Releases · dmlc/mxnet". Github.
  38. ^ "Installation Guide — mxnet documentation". Readthdocs.
  39. ^ "MXNet Smart Device". ReadTheDocs.
  40. ^ "MXNet.js". Github.
  41. ^ "Support for other Device Types, OpenCL AMD GPU · Issue #621 · dmlc/mxnet". GitHub.
  42. ^ https://mxnet.readthedocs.io/
  43. ^ "Model Gallery". GitHub.
  44. ^ "Run MXNet on Multiple CPU/GPUs with Data Parallel". GitHub.
  45. ^ https://github.com/hughperkins/pytorch-coriander
  46. ^ https://github.com/pytorch/pytorch/issues/488
  47. ^ https://github.com/pytorch/pytorch/issues/488#issuecomment-273626736
  48. ^ https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html
  49. ^ interface), JJ Allaire (R; RStudio; Eddelbuettel, Dirk; Golding, Nick; Tang, Yuan; Tutorials), Google Inc (Examples and (2017-05-26), tensorflow: R Interface to TensorFlow, retrieved 2017-06-14 {{citation}}: |first6= has generic name (help)
  50. ^ a b "tensorflow/roadmap.md at master · tensorflow/tensorflow · GitHub". GitHub. January 23, 2017. Retrieved May 21, 2017.
  51. ^ a b "OpenCL support · Issue #22 · tensorflow/tensorflow". GitHub.
  52. ^ https://www.tensorflow.org/
  53. ^ https://github.com/tensorflow/models
  54. ^ https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html
  55. ^ https://www.tensorflow.org/
  56. ^ https://github.com/tensorflow/models
  57. ^ "Using the GPU — Theano 0.8.2 documentation".
  58. ^ http://deeplearning.net/software/theano/library/gradient.html
  59. ^ https://groups.google.com/d/msg/theano-users/mln5g2IuBSU/gespG36Lf_QJ
  60. ^ "Recipes/modelzoo at master · Lasagne/Recipes · GitHub". GitHub.
  61. ^ Using multiple GPUs — Theano 0.8.2 documentation
  62. ^ https://github.com/torch/torch7/wiki/Windows
  63. ^ "GitHub - soumith/torch-android: Torch-7 for Android". GitHub.
  64. ^ "Torch7: A Matlab-like Environment for Machine Learning" (PDF).
  65. ^ "GitHub - jonathantompson/jtorch: An OpenCL Torch Utility Library". GitHub.
  66. ^ "Cheatsheet". GitHub.
  67. ^ "cltorch". GitHub.
  68. ^ "Torch CUDA backend". GitHub.
  69. ^ "Torch CUDA backend for nn". GitHub.
  70. ^ https://github.com/twitter/torch-autograd
  71. ^ "ModelZoo". GitHub.
  72. ^ https://github.com/torch/torch7/wiki/Cheatsheet#distributed-computing--parallel-processing
  73. ^ http://resources.wolframcloud.com/NeuralNetRepository