Comparaison de logiciels d'apprentissage profond

Un article de Wikipédia, l'encyclopédie libre.

Le tableau suivant compare les cadres logiciels, bibliothèques et programmes informatiques notables pour l'apprentissage en profondeur.

Logiciel d'apprentissage en profondeur par nom[modifier | modifier le code]


Nom Créateur 1ère publication Licence Ouvert Plate-forme Langage Interface OpenMP OpenCL CUDA Differentiation[1] Modèles

préentrainés

Récurrent Convolutif RBM/DBNs Parallèle Actif
BigDL Jason Dai (Intel) 2016 Apache 2.0 Oui Apache Spark Scala Scala, Python Non Oui Oui Oui
Caffe Berkeley Vision and Learning Center 2013 Licence BSD Oui Linux, macOS, Windows[2] C++ Python, MATLAB, C++ Oui Under development[3] Oui Oui Oui[4] Oui Oui Non ? Non[5]
Chainer Preferred Networks 2015 Licence BSD Oui Linux, macOS Python Python Non Non Oui Oui Oui Oui Oui Non Oui Non[6]
Deeplearning4j Skymind engineering team; Deeplearning4j community; originally Adam Gibson 2014 Apache 2.0 Oui Linux, macOS, Windows, Android (Cross-platform) C++, Java Java, Scala, Clojure, Python (Keras), Kotlin Oui Non[7] Oui[8],[9] Computational Graph Oui[10] Oui Oui Oui Oui[11]
Dlib Davis King 2002 Boost Software License Oui Cross-Platform C++ C++ Oui Non Oui Oui Oui Non Oui Oui Oui
Flux Mike Innes 2017 MIT license Oui Linux, MacOS, Windows (Cross-platform) Julia Julia Oui Oui Oui[12] Oui Oui Non Oui Oui
Intel Data Analytics Acceleration Library Intel 2015 Apache 2.0 Oui Linux, macOS, Windows on Intel CPU[13] C++, Python, Java C++, Python, Java Oui Non Non Oui Non Oui Oui
Intel Math Kernel Library Intel Propriétaire Non Linux, macOS, Windows on Intel CPU[14] C[15] Oui[16] Non Non Oui Non Oui[17] Oui[17] Non
Keras François Chollet 2015 MIT license Oui Linux, macOS, Windows Python Python, R Only if using Theano as backend Can use Theano, Tensorflow or PlaidML as backends Oui Oui Oui[18] Oui Oui Non[19] Oui[20] Oui
MATLAB + Deep Learning Toolbox MathWorks Propriétaire Non Linux, macOS, Windows C, C++, Java, MATLAB MATLAB Non Non Train with Parallel Computing Toolbox and generate CUDA code with GPU Coder[21] Oui[22] Oui[23],[24] Oui[23] Oui[23] Oui With Parallel Computing Toolbox[25] Oui
Microsoft Cognitive Toolkit (CNTK) Microsoft Research 2016 MIT license[26] Oui Windows, Linux[27] (macOS via Docker on roadmap) C++ Python (Keras), C++, Command line[28], BrainScript[29] (.NET on roadmap[30]) Oui[31] Non Oui Oui Oui[32] Oui[33] Oui[33] Non[34] Oui[35] Non[36]
Apache MXNet Apache Software Foundation 2015 Apache 2.0 Oui Linux, macOS, Windows[37],[38], AWS, Android[39], iOS, JavaScript[40] Small C++ core library C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl, Clojure Oui On roadmap[41] Oui Oui[42] Oui[43] Oui Oui Oui Oui[44] Oui
N2D2 CEA 2017 CeCILL Oui Linux, Windows[45] Python, C, C++, CUDA Python, C++ Oui Oui Oui Oui Oui Non Oui Non Oui Oui
Neural Designer Artelnics Propriétaire Non Linux, macOS, Windows C++ Graphical user interface Oui Non Non ? ? Non Non Non ?
OpenNN Artelnics 2003 LGPL Oui Cross-platform C++ C++ Oui Non Oui ? ? Non Non Non ?
PlaidML Vertex.AI,Intel 2017 AGPL Oui Linux, macOS, Windows Python, C++, OpenCL Python, C++ ? Some OpenCL ICDs are not recognized Non Oui Oui Oui Oui Oui Oui
PyTorch Adam Paszke, Sam Gross, Soumith Chintala, Gregory Chanan (Facebook) 2016 Licence BSD Oui Linux, macOS, Windows Python, C, C++, CUDA Python, C++ Oui Via separately maintained package[46],[47] Oui Oui Oui Oui Oui Oui Oui
Apache SINGA Apache Software Foundation 2015 Apache 2.0 Oui Linux, macOS, Windows C++ Python, C++, Java Non Supported in V1.0 Oui ? Oui Oui Oui Oui Oui
TensorFlow Google Brain 2015 Apache 2.0 Oui Linux, macOS, Windows[48], Android C++, Python, CUDA Python (Keras), C/C++, Java, Go, JavaScript, R, Julia, Swift Non On roadmap[49] but already with SYCL[50] support Oui Oui[51] Oui[52] Oui Oui Oui Oui Oui
Theano Université de Montréal 2007 Licence BSD Oui Cross-platform Python Python (Keras) Oui Under development[53] Oui Oui[54],[55] Through Lasagne's model zoo[56] Oui Oui Oui Oui[57] Non
Torch Ronan Collobert, Koray Kavukcuoglu, Clement Farabet 2002 Licence BSD Oui Linux, macOS, Windows[58], Android[59], iOS C, Lua Lua, LuaJIT[60], C, utility library for C++/OpenCL[61] Oui Third party implementations[62],[63] Oui[64],[65] Through Twitter's Autograd[66] Oui[67] Oui Oui Oui Oui[58] Non
Wolfram Mathematica Wolfram Research 1988 Propriétaire Non Windows, macOS, Linux, Cloud computing C++, Wolfram Language, CUDA Wolfram Language Oui Non Oui Oui Oui[68] Oui Oui Oui Oui[69] Oui
Software Creator Initial Release Software license[note 1] 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

Logiciels associés[modifier | modifier le code]

  • Neural Engineering Object (NENGO) - Un logiciel graphique et de script pour simuler des systèmes neuronaux à grande échelle
  • Numenta Platform for Intelligent Computing - Implémentation open source de Numenta de leur modèle de mémoire temporelle hiérarchique
  • OpenCV - OpenCV (Open Source Computer Vision Library) est une bibliothèque de logiciels de vision artificielle et d'apprentissage automatique sous licence BSD, avec environ 18 millions de téléchargements depuis Source Forge.

Interopérabilité entre les algorithmes d'apprentissage en profondeur[modifier | modifier le code]

Avec le développement de divers logiciels et formats de modèles d'apprentissage en profondeur, l'interopérabilité devient un problème majeur.

Nom du format Objectif de conception Compatible avec d'autres formats Modèle DNN autonome Pré-traitement et post-traitement Configuration d'exécution pour le réglage et l'étalonnage Interconnexion de modèle DNN Plateforme commune
Tensorflow, Keras, Caffe, Torch, ONNX , Formation à l'algorithme Non Pas de fichiers / séparés dans la plupart des formats Non Non Non Oui
ONNX Formation à l'algorithme Oui Pas de fichiers / séparés dans la plupart des formats Non Non Non Oui

Voir également[modifier | modifier le code]

Notes[modifier | modifier le code]

  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

Références[modifier | modifier le code]

  1. a et b (en) Auteur inconnu, « Automatic differentiation in machine learning: a survey », .
    erreur modèle {{Lien arXiv}} : renseignez un paramètre « |eprint »
  2. « Microsoft/caffe », GitHub
  3. « Caffe: a fast open framework for deep learning. », sur GitHub,
  4. « Caffe | Model Zoo », sur caffe.berkeleyvision.org
  5. GitHub - BVLC/caffe: Caffe: a fast open framework for deep learning., Berkeley Vision and Learning Center, (lire en ligne)
  6. Preferred Networks Migrates its Deep Learning Research Platform to PyTorch, (lire en ligne)
  7. « Support for Open CL · Issue #27 · deeplearning4j/nd4j », sur GitHub
  8. « N-Dimensional Scientific Computing for Java »
  9. « Comparing Top Deep Learning Frameworks », Deeplearning4j
  10. Chris Nicholson et Adam Gibson, « Deeplearning4j Models »
  11. Deeplearning4j, « Deeplearning4j on Spark », Deeplearning4j
  12. « Metalhead », FluxML
  13. « Intel® Data Analytics Acceleration Library (Intel® DAAL) », software.intel.com,
  14. « Intel® Math Kernel Library (Intel® MKL) », software.intel.com,
  15. « Deep Neural Network Functions », software.intel.com,
  16. « Using Intel® MKL with Threaded Applications », sur software.intel.com,
  17. a et b « Intel® Xeon Phi™ Delivers Competitive Performance For Deep Learning—And Getting Better Fast », sur software.intel.com,
  18. « Applications - Keras Documentation », sur keras.io
  19. « Is there RBM in Keras? · Issue #461 · keras-team/keras », sur GitHub
  20. « Does Keras support using multiple GPUs? · Issue #2436 · keras-team/keras », sur GitHub
  21. « GPU Coder - MATLAB & Simulink », sur MathWorks (consulté le )
  22. « Automatic Differentiation Background - MATLAB & Simulink », sur MathWorks, (consulté le )
  23. a b et c « Neural Network Toolbox - MATLAB », sur MathWorks (consulté le )
  24. « Deep Learning Models - MATLAB & Simulink », sur MathWorks (consulté le )
  25. « Parallel Computing Toolbox - MATLAB », sur MathWorks (consulté le )
  26. « CNTK/LICENSE.md at master · Microsoft/CNTK · GitHub », sur GitHub
  27. « Setup CNTK on your machine », GitHub
  28. « CNTK usage overview », GitHub
  29. « BrainScript Network Builder », GitHub
  30. « .NET Support · Issue #960 · Microsoft/CNTK », GitHub
  31. « How to train a model using multiple machines? · Issue #59 · Microsoft/CNTK », sur GitHub
  32. « Prebuilt models for image classification · Issue #140 · microsoft/CNTK », sur GitHub
  33. a et b « CNTK - Computational Network Toolkit », Microsoft Corporation
  34. url=https://github.com/Microsoft/CNTK/issues/534
  35. « Multiple GPUs and machines », Microsoft Corporation
  36. « Disclaimer », CNTK TEAM
  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 », sur GitHub
  42. « — Redirecting to http://mxnet.io », sur mxnet.readthedocs.io
  43. « Model Gallery », sur GitHub
  44. « Run MXNet on Multiple CPU/GPUs with Data Parallel », sur GitHub
  45. « Installation de N2D2 », sur GitHub
  46. « OpenCL build of pytorch: (in-progress, not useable) - hughperkins/pytorch-coriander », sur GitHub,
  47. « OpenCL Support · Issue #488 · pytorch/pytorch », sur GitHub
  48. « TensorFlow 0.12 adds support for Windows »
  49. « tensorflow/roadmap.md at master · tensorflow/tensorflow · GitHub », sur GitHub, (consulté le )
  50. « OpenCL support · Issue #22 · tensorflow/tensorflow », sur GitHub
  51. « TensorFlow », sur TensorFlow
  52. « Models and examples built with TensorFlow. », sur GitHub,
  53. « Using the GPU — Theano 0.8.2 documentation »
  54. « gradient – Symbolic Differentiation — Theano 1.0.0 documentation », sur deeplearning.net
  55. https://groups.google.com/d/msg/theano-users/mln5g2IuBSU/gespG36Lf_QJ
  56. « Recipes/modelzoo at master · Lasagne/Recipes · GitHub », sur GitHub
  57. « Using multiple GPUs — Theano 1.0.0 documentation », sur deeplearning.net
  58. a et b « torch/torch7 », sur GitHub,
  59. « GitHub - soumith/torch-android: Torch-7 for Android », GitHub
  60. « Torch7: A Matlab-like Environment for Machine Learning »
  61. « GitHub - jonathantompson/jtorch: An OpenCL Torch Utility Library », GitHub
  62. « Cheatsheet », sur GitHub
  63. « cltorch », sur GitHub
  64. « Torch CUDA backend », sur GitHub
  65. « Torch CUDA backend for nn », sur GitHub
  66. « Autograd automatically differentiates native Torch code: twitter/torch-autograd », sur GitHub,
  67. « ModelZoo », sur GitHub
  68. « Wolfram Neural Net Repository of Neural Network Models », sur resources.wolframcloud.com
  69. « Parallel Computing—Wolfram Language Documentation », sur reference.wolfram.com