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 Poitiers
Objectifs 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 2
Frameworks 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” 3
Frameworks 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” 4
Frameworks 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 5
Torch • 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é 6
Theano • 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 7
Caffe • 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 8
Chainer • Année et Créateur : 2015 by Preferred Networks, Japan • Type de licence : BSD • OS : Linux, macOS • Langage : Python • Interface : Python • Cuda et OpenMP 9
Pytorch • 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 10
MXNet • 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 11
Microsoft 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 12
DeepLearning4j • 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 13
Tensorflow • 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 14
Keras • 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 15
Tensorflow 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 16
PyTorch 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? 17
The 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 18
Jake VanderPlas @jakevdp, SciPy Keynote; July 10, 2015 19
Jupyter project • Jupyter Notebook • Jupyter Lab Efficacité, simplicité de programmation, Permet l’ouverture de multiples applications (matplotlib, pdf, console, ouverture d’images, etc.) 20
Git / GitHub Source : https://blog.devm ountain.com/git- vs-github-whats- the-difference/ 21
22
23
Interprétabilité des modèles ? Source : « medical diagnosis and deep learning » google news (03/01/2020) 24
Le 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. ? 25
Instabilité 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) 26
Outils 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 27
Deep 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. 28
Outils 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) 29
Outils de visualisation : tensorflow playground 30
Plateformes 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 ? 31
Conclusion • 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/ 32
Vous pouvez aussi lire