Librairies et outils pour le deep learning - Thierry Urruty, Pascal Bourdon, Mathieu - AI4industry
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Librairies et outils pour
le deep learning
Thierry Urruty, Pascal Bourdon, Mathieu
Naudin, Philippe Carre
Laboratoire XLIM, UMR CNRS 7252
Université de PoitiersObjectifs de cette présentation
• Lister / enumérer un ensemble (non exhaustif)
de frameworks de deep learning
– Avantages et inconvénients ?
• Proposer de comprendre quelques différences
dans le choix de son framework
• Proposer des outils programmer, partager,
comprendre et visualiser
• Sources principales : Wikipédia et les sites des
frameworks
2Frameworks existants (non exhaustifs)
• Et Open source
– Torch, PyTorch
– Theano
– Caffe, Caffe2
– Chainer
– MXNet
– DeepLearning4j
– Tensorflow
Source : Andrej Karpathy@karpathy
« Unique mentions of deep learning frameworks in arxiv papers (full text)
over time, based on 43K ML papers over last 6 years”
3Frameworks existants (non exhaustifs)
Source : Andrej Karpathy@karpathy
« Unique mentions of deep learning frameworks in arxiv papers (full text)
over time, based on 43K ML papers over last 6 years”
4Frameworks existants (non exhaustifs)
• Et Open source
– Torch, PyTorch
– Theano
– Caffe, Caffe2
– Chainer
– MXNet
– DeepLearning4j
– Tensorflow
Source : Jeff Hale https://towardsdatascience.com/deep-learning-
framework-power-scores-2018-23607ddf297a
5Torch
• Année et Créateur : 2002, Ronan Collobert,
Samy Bengio, Johny Mariéthoz (IDIAP RI)
• Type de licence : BSD
• OS : Linux, macOS, et Windows, Android, iOS
• Langage : C, Lua
• Interface : Lua, LuaJIT, C, C++
• OpenMP, OpenCL, CUDA
• Torch 7 actuellement, développement arrêté
6Theano
• Année et Créateur : 2007 by Université de
Montréal
• Type de licence : BSD
• OS : Linux, macOS, et Windows
• Langage : Python
• Interface : Python (Keras)
• Cuda, OpenMP
• Version 1.0.0, 15/11/2017
depuis le développement est arrêté, maintenance
continue
7Caffe
• Année et Créateur : 2013 by berkeley Vision
and Learning center
• Type de licence : BSD
• OS : Linux, macOS, et Windows
• Langage : C++
• Interface : Python, Matlab, C++
• Cuda et OpenMP
8Chainer
• Année et Créateur : 2015 by Preferred
Networks, Japan
• Type de licence : BSD
• OS : Linux, macOS
• Langage : Python
• Interface : Python
• Cuda et OpenMP
9Pytorch
• Année et Créateur : 2016 by Facebook
• Type de licence : BSD
• OS : Linux, macOS, et Windows
• Langage : Python, C++, C, CUDA
• Interface : Python, C++
• OpenMP, OpenCL, CUDA
• Version 1.3.1
• Rejoint par Caffe et Chainer
Programmation impérative
Débogage facilité
Graphe de modèle dynamique
Efficacité : quantification paramètres
10MXNet
• Année : 2015, par Apache Sofware Foundation
• Type de licence : Apache 2.0
• OS : multi plateformes
• Langage : C++
• Interface : C++, Python, Julia, Matlab, R,
javascrip, Go, Perl, Scala
• Cuda, OpenMP, OpenCL prévu
• Version 1.5.0
Programmation hybride : impérative et symbolique par
création de graphes
Efficacité sur les opérations mathématiques => GPUs
11Microsoft Cognitive Toolkit (CNTK)
• Année et Créateur : 2016, par Microsoft Research
• Type de licence : MIT Licence
• OS : Linux, Windows
• Langage : C++
• Interface : C++, Python (Keras),
• Cuda, OpenMP
• Version 2.7.0
Utilise le format ONNX (Open NN eXchange)
Représentation sous forme de graphe
=> Permet la combinaison des RNNs et CNNs
12DeepLearning4j
• Année et Créateur : 2014, par Adam Gibson,
Skymind, et la communauté
• Type de licence : Apache2.0
• OS : Linux, Windows, macOS, Android
• Langage : C++, Java
• Interface : Java, Scala, Python (Keras)
• Cuda, OpenMP
• Version 1.0.0
Efficacité avec Apache Spark, bonne documentation
Pour ceux qui sont attachés au langage Java
13Tensorflow
• Année et Créateur : 2015 by Google (Google
Brain)
• Type de licence : Apache 2.0
• OS : Linux, macOS, et Windows
• Langage : Python, C++, CUDA
• Interface : Python (Keras), C++, Java, Julia,
javascript, R, Go, Swift
• Cuda, OpenCL (with SYCL)
• Mai 2017 : Tensorflow Lite pour Android (Oréo),
fonctionne sur une raspberry Pi
• Sortie de Tensorflow2.0 (Sept 2019)
Bonne documentation, nombreux exemples Peu efficace
Très souvent mis à jour en version 1
14Keras
• Année et Créateur : 2015 by François Chollet,
projet ONEIROS
• Type de licence : MIT Licence
• OS : Linux, macOS, et Windows
• Langage : Python
• Interface : Python et R
• OpenMP with Theano, OpenCL (avec
Tensorflow), CUDA
• Version 2.3.1
Facilité de programmation, bonne documentation Lent
Fonctionne avec Tensorflow, Theano, CNTK en backend
15Tensorflow 2.0
• Basée sur Tensorflow et des idées des autres
• Objectif affiché : efficacité
– Nettoyage d’API
– Variables globales supprimées
– Sessions remplacées par des fonctions
• Implémentation particulière de Keras par
Tensorflow
– Tf.keras
– Normalement compatible (version actuelle de Keras)
Efficacité améliorée
Simplicité de programmation
Programmation impérative
16PyTorch vs Tensorflow
Tensorflow Pytorch
Bien documenté, communauté (Moins) Bien documenté,
énorme communauté naissante et
grandissante
Beaucoup d’exemples disponibles Moins, mais en augmentation
Graphe du modèle statique Graphe du modèle dynamique
(changement avec TF2.0)
Déploiement en production plus Destiné plus à la recherche
facile (version Lite)
? Facile à débugger
Outil de visualisation : tensorboard Intégration de tensorboard
Plus lent? (TF2.0 ? Non testé) Plus rapide?
17The PYPL PopularitY of
Programming Language
Index
Analyse la fréquence de
recherche d’un tutoriel
d’un langage de
programmation sur
google
Source : https://pypl.github.io/PYPL.html
18Jake VanderPlas @jakevdp, SciPy Keynote; July 10, 2015
19Jupyter project
• Jupyter Notebook
• Jupyter Lab
Efficacité, simplicité
de programmation,
Permet l’ouverture
de multiples
applications
(matplotlib, pdf,
console, ouverture
d’images, etc.)
20Git / GitHub
Source :
https://blog.devm
ountain.com/git-
vs-github-whats-
the-difference/
2122
23
Interprétabilité des modèles ?
Source : « medical diagnosis and deep learning » google news (03/01/2020)
24Le deep learning, une boite noire ?
• Une IA ne raisonne pas, elle apprend à réagir à
des stimuli. Puis, elle réagit à ces stimuli, avec
ou sans hiérarchie interne, mais de façon
systématique.
• Une IA discrimine souvent pour prédire une
information sémantique.
?
25Instabilité des modèles, facile à tromper?
• L’algorithme ne vous dira jamais qu’il ne sait
pas. Si vous lui demandez de trouver des objets
dans des images, il en trouvera.
Source : Anh Nguyen et al. Deep neural networks are easily fooled: High confidence predictions for unrecognizable images
June 2015. IEEE Conference on Computer Vision and Pattern Recognition (CVPR)
26Outils de visualisation : tensorboard
Permet de visualiser
- Le modèle correctement
construit.
- l’état de l’apprentissage :
Changement de métrique
et Valeur du Loss par ex.
- Distributions et
histogrammes des poids.
- Autres plug-ins
disponibles : information
sur les images
27Deep Visualisation toolbox
• Jason Yosinski, Jeff Clune, Anh Nguyen, Thomas Fuchs, and Hod
Lipson. Understanding neural networks through deep visualization. Presented at the
Deep Learning Workshop, International Conference on Machine Learning (ICML), 2015.
28Outils de visualisation : CNNVis
• Mengchen Liu, Jiaxin Shi, Zhen Li, Chongxuan Li, Jun Zhu, Shixia Liu:
Towards Better Analysis of Deep Convolutional Neural Networks. IEEE Trans. Vis.
Comput. Graph. 23(1): 91-100 (2017)
29Outils de visualisation : tensorflow playground
30Plateformes de machine learning
• Source : https://www.altexsoft.com/blog/datascience/comparing-
machine-learning-as-a-service-amazon-microsoft-azure-google-cloud-ai-
ibm-watson/
• La puissance a un prix, en fonction de la demande, prix par heure de
calcul => solution temporaire ?
31Conclusion
• De nombreux outils à
tester
• Des mises à jour
fréquentes
– Rester connectés !
• Lire des articles
scientifiques !
• Merci de votre attention,
questions?
• “For the next few years, you’re
going to see … how to quantize
smarter, how to fuse better, how to
use GPUs more efficiently, [and]
how to automatically compile for
new hardware.” Soumith Chintala,
Facebook
• Source:
https://venturebeat.com/2020/01/02/top- Source : https://azure.microsoft.com/en-
minds-in-machine-learning-predict-where-ai-is-
going-in-2020/ us/services/virtual-machines/data-science-virtual-
machines/
32Vous pouvez aussi lire