Deep Learning
Deep Learning
Deep Learning
Notre projet vise principalement limplementation de Deep Learning sur un GPU NVI-
DIA en premier lieu et sur le Cloud en 2eme lieu.
Pour le front-end, on a choisi DIGITS, une application web, pour mieux visualiser la
fonctionnalite des algorithmes de DL sans code. Comme back-en, cetait Caffe le plus
adaptable a nos besoins.
Notre projet se divise globalement en 3 parties principales : la premiere cest de preparer
lenvironnement de travail (Installation, configuration. . . ) , la 2eme sert a implementer
quelques fameux algorithmes de classification et de detection des objets tout en exploi-
tant des diverses base de donnees normalisees et issues de differentes sources en appliquant
chaque fois un algorithme approprie.
On a insiste dans ce projet eventuellement sur limportance de Cloud pour tourner les
algorithmes de DL qui sappliquent sur des grandes bases de donnees et ce dans la derniere
partie.
Ce projet constitue une terre fertile ou on peut planter des applications dIA qui peuvent
aider lhumanite dans le plus proche avenir.
Mots cles : Deep Learning, NVIDIA, DIGITS, Caffe, Cloud.
Table des matieres
Introduction generale x
2 Preparation de lenvironnement 12
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Compute Unified Device Architecture :CUDA . . . . . . . . . . . . . . . . 12
2.2.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.2 Installation du CUDA . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Caffe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.2 Installation du Caffe . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 NVIDIA Deep Learning GPU Training System : DIGITS . . . . . . . . . . 14
iv
TABLE DES MATIERES v
2.4.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4.2 Installation du DIGITS . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Implementation 17
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.1 Creation de Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.2 Trainer le modele . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.3 Tester le modele . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 MNIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.1 Creation de DataSet . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.2 Trainer le modele . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.3.3 Tester le modele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4 KITTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.1 Creation de DataSet . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.2 Trainer le Modele . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 La solution Cloud 29
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1.1 Amazon Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1.2 Amazon Elastic Compute Cloud (EC2) . . . . . . . . . . . . . . . . 29
4.1.2.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1.2.2 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1.2.3 Activation dinstance g2.2xlarge . . . . . . . . . . . . . . . 31
4.1.3 Preparation de lenvironnement . . . . . . . . . . . . . . . . . . . . 35
Conclusion generale 37
Bibliographie 37
Annexe 1 39
Annexe 2 42
Table des figures
viii
Liste des acronymes
IA : Intelligence Artificielle.
ML : Machine Learning.
DL : Deep Learning.
NN : Neural Network.
CNN : Convolutional Neural Network.
DNN : Deep Neural Network.
MPL : Multi Layer Perceptron.
GPU : Graphical Processing Unit.
CPU : Central Processing Unit.
ALU : Arithmetic Logic Unit.
CUDA : Compute Unified Device Architecture.
cuDNN : Nvidia CUDA Deep Neural Networks.
DIGITS : Nvidia Deep Learning GPU Training System.
AWS : Amazon Web Service.
EC2 : Elastic Compute Cloud.
HPDA : High Performance Data Analytics.
HPC : High Performance Computer.
IOT : Internet Of Things.
ix
Introduction generale
Lorsque lintelligence artificielle a dabord emerge comme une discipline, les scientifiques
avaient de grands espoirs pour cela. Ils voulaient creer lIntelligence Artificielle Generale,
cest-a-dire un systeme informatique capable de faire quelque chose dhumain, dune ma-
niere meilleure et plus rapide que nous. Apres que lIA na pas reussi a respecter ses
promesses initiales, les scientifiques ont reduit leurs attentes, tout en se concentrant sur
des taches specifiques.
Aujourdhui, la Machine Learning est le seul domaine qui apporte des resultats promet-
teurs et pertinents. Lidee derriere elle est assez simple. Plutot que de programmer des
ordinateurs avec un ensemble specifique dinstructions pour accomplir une tache parti-
culiere, comme le deplacement, la parole ou la reconnaissance de visages, vous codez les
machines pour apprendre de leur propre maniere a effectuer la tache.
Differents concepts algorithmiques ont ete utilises pour la Machine Learning, mais ce sont
les biomimetiques, ou biomimetrie, qui ont permis une percee reelle. Biomimetics sins-
pirent de la biologie, dans ce cas, le cerveau humain, afin de concevoir une machine plus
intelligente. Cela a conduit au developpement de reseaux de neurones artificiels, qui sont
programmes pour traiter linformation de la meme maniere que notre cerveau.
Nos propres processus dapprentissage sont lies aux synapses du cerveau, qui servent de
connexion entre nos neurones. Plus une stimulation est stimulee, plus la connexion est ren-
forcee et lapprentissage sest ameliore. Les chercheurs se sont inspires de ce mecanisme
pour concevoir une synapse artificielle, appelee memristor.
Ces dernieres annees, plus precisement en 2012, le Deep Learning est monte sur scene
pour voler la vedette a la Machine Learning. Il a envahi tous les grands titres, ainsi, il est
devenu le centre dattention de tout le monde grace a ses realisations spectaculaires !
Comment fonctionne ce reseau de neurones artificiels ?
Du Machine Learning au Deep Learning, pourquoi cette migration ?
Comment et ou peut-on implementer le Deep Learning ?
x
Chapitre 1
1.1 Introduction
Vers les annees 1950, un nouveau terme a ete remonte dans le monde cetait lintelligence
artificielle. Mais, rapidement des histoires des sciences fiction ont montre linquietude en-
vers des machines plus intelligentes que lhomme ce qui a mene a sa disparition.
Aujourdhui, ce terme revient en force avec lapparition de nouvelles techniques dappren-
tissage, lapparition des processeurs de grande puissance de calcul ainsi que la disponibilite
des donnees.
1
2 CHAPITRE 1. MONTEE DU DEEP LEARNING
Figure 1.1 Determination dune fonction lineaire par la machine learning [1]
Cependant, pour des exemples assez compliques (classification des images compliquees,
detection des objets sur , la comprehension de la parole. . . ), la machine Learning etait
incapable de les modeliser et il demeure difficile de trouver des relations simples entre
les entrees et la sortie. On est besoin alors de quelque chose qui peut prendre beaucoup
dentrees et qui arrive a capturer des relations plus complexes dou lintervention du reseau
de neurones. Ce dernier presente une interconnexion entre plusieurs neurones. En realite
ces neurones ne sont que des fonctions mathematiques qui vont mettre en relation des
entrees avec une sortie [3].
1.2. LA MACHINE LEARNING : LAPPRENTISSAGE AUTOMATIQUE 3
Ces neurones, polyvalents, sont semblables aux neurones biologiques car ils imitent le
fonctionnement du cerveau humain. En effet, on prend un reseau de neurones et on y
presente une base de donnees dexemples dentrees et de sorties. Le reseau va analyser les
donnees un par un et il prend une decision a ce sujet.A chaque iteration, il sera informe,
a laide dune fonction cout, si sa determination est correcte ou non. Si sa decision etait
erronee, lalgorithme va ajuster sur les connexions entre les neurones du reseau afin de
changer ses previsions futures. Ce processus sera repute jusqua ce que les connexions
soient reglees et le reseau devient capable de predire correctement la sortie si on y presente
une entree [8]. Notons bien que cet entranement peut necessiter des heures, voire des jours
tout depend de la puissance de lordinateur et de la taille de base de donnees.
devient tres difficile dextraire des relations. La solution est donc de faire des algorithmes
intermediaires. Ces algorithmes ne sont pas des reseaux de neurones, ils consistent a
analyser les donnees et extraire toutes ses caracteristiques interessantes qui vont etre
utilisees comme des entrees pour les reseaux de neurones [3].
Mais avec ces algorithmes, on est devant un autre enjeu cest le degree de fidelite aux
donnees car la qualite de prediction va dependre des resultats fournis par ces algorithmes
intermediaires et pour cela leurs conceptions necessitent un travail dintelligence ce qui
nest pas garanti dou la naissance du Deep Learning.
1.3.1 Definition
Le Deep Learning est un ensemble de technique de classification et dapprentissage auto-
matique, visant a reproduire le fonctionnement du cerveau humain. Il a nee vers 2006 et
se base sur des reseaux de neurones artificiels. La particularite de ces reseaux est quils
sont organises en couche et dune maniere hierarchique [5].
Le DL vient de resoudre le probleme de lalgorithme de construction des caracteristiques,
son idee est de sauter letape de conception de cet algorithme en faisant un gros reseau
de neurone avec plein de couches [3].
1.3. LE DEEP LEARNING : LAPPRENTISSAGE PROFOND 5
Ces couches sont utilisees pour effectuer un traitement, hierarchises, des donnees et ex-
traire tous leurs caracteristiques. Ainsi chaque couche prend comme entree la sortie de
la precedente pour estimer une sortie qui va servir comme entree pour la couche dapres
et avec ce processus le programme arrive a determiner la relation dentrees-sortie meme
quelle parait tres compliquee [5].
Bien que la phase dapprentissage fut tres difficile avec un gros reseau de neurones, des
grands pionniers de Deep Learning (comme Yann LeCun,. . . ) ont arrive a construire des
algorithmes qui sont capables de determiner des relations assez complexes entre des entrees
et une sortie. Ainsi le petit miracle qui se produit avec le Deep Learning cest que les
couches inferieures du reseau de neurone cherchent dabord a traiter les elements les plus
simple presentes dans une donnee et les couches superieures extraient les caracteristiques
les plus complexes ce qui va faciliter la phase dapprentissage [5].
Actuellement il devient facile de faire des reseaux de neurones profonds qui ont plus dune
centaine de couches et plusieurs millions de neurones.
6 CHAPITRE 1. MONTEE DU DEEP LEARNING
AlexNet : developpe par Alex Krizhevsky, Ilya Sutskever et Geoff Hinton.Il a ete
soumis au defi ImageNet ILSVRC en 2012 et a nettement occupe la 2eme place. Le
reseau avait une architecture tres similaire a LeNet, mais avec plus grand nombres
des couches convolutionnelles empilees les unes sur les autres [4].
1.3. LE DEEP LEARNING : LAPPRENTISSAGE PROFOND 7
GoogleNet : gagnant ILSVRC 2014 et developpe par Szegedy et al. De Google. Son
challenge etait de reduire considerablement le nombre de parametres dans le reseau.
Il existe egalement plusieurs versions de suivi vers GoogLeNet, tout recemment
DetectNet utilise pour la detection des objets [4].
Aujourdhui, le succes du Deep Learning est non seulement lie a lutilisation des archi-
tectures particulieres de reseau de neurones bien adaptes aux besoins mais aussi lie au
puissance enorme de calcul et notamment le progres de processeurs graphiques : les GPUs.
1.4. LES PROCESSEURS GRAPHIQUES 9
1.4.1 Definition
Le GPU (Graphical Processing Unit) est un processeur qui a pour fonction le calcul de
laffichage 2D et 3D (des images, des videos, des animations . . . ), on le trouve generalement
integre dans les cartes graphiques. Cest un element indispensable dans les ordinateurs,
sans lui il ny en a pas dimage sur lecran [6].
NVIDIA, leader sur le marche des cartes graphiques, a fabrique des GPUs utilises essentiel-
lement dans lindustrie de lintelligence artificielle. Actuellement, tous les algorithmes du
Deep Learning tournent autours des systemes ayant le GPU NVIDIA parce quil presente
de nombreux avantages [9] :
Latout majeur des GPUs est le traitement parallele des donnees. En effet le fait de
repartir les operations de calcul sur plusieurs unites de calcul permet dobtenir le
resultat dans un temps raisonnable ce qui entraine une acceleration, de 10 a 20 fois,
dans la phase dentrainement des reseaux de neurones.
Les GPUs sont tres adaptes pour lexecution, dans un temps faible, des algorithmes
dapprentissage qui sappuient sur des donnees complexes.
Grace au service Cloud, on est capable maintenant de traiter un grand nombre de
donnees sur des GPUs hyper puissants comme Tesla, concu specialement pour le
DL, avec un cout energetique et une infrastructure materielle relativement faible.
1.5. CONCLUSION 11
1.5 Conclusion
Le Deep Learning est une nouvelle technologie qui a ete repandit dans tous les domaines
et notamment dans la classification et la segmentation des images, la detection des ob-
jets. . . Nous, on va essayer dimplementer ces techniques pour quon puisse les utiliser
ulterieurement dans des applications mais, avant tout, il faut preparer lenvironnement
necessaire pour leurs implementations.
Chapitre 2
Preparation de lenvironnement
2.1 Introduction
Pour toutes applications dapprentissage profond, comme pour tous autres types dap-
plication, preparation dun environnement favorable constitue lune des phases les plus
importantes dans leurs developpements.
2.2.1 Definition
CUDA est une plate-forme informatique, ecrite en C++, comprend un compilateur spe-
cialement concu pour les GPUs NVIDIA ainsi que des bibliotheques mathematiques et
des outils de debogage et doptimisation des performances des applications toute en ex-
ploitant la puissance de lunite de traitement graphique (GPU) [10].
Parmi les bibliotheques inclues dans CUDA on cite le NVIDIA CUDA Deep Neural Net-
work (cuDNN), une bibliotheque de primitives pour les reseaux de neurones profonds.
Cette bibliotheque aide a implementer beaucoup doperations de grandes dimensions telle
que la convolution, en donnant une bonne performance a lapplication mais avec une uti-
lisation minimale de la memoire. Ainsi Lutilisation de cette bibliotheque permet daug-
menter la vitesse dentrainement des algorithmes de plus de 44% , avec plus de 6 fois de
vitesse dans les Frameworks de Deep Learning quon les verra ulterieurement. [11]
Le cuDNN a permis daccelerer les Frameworks de Deep Learning toute en laissant les
developpeurs de ce domaine concentres sur la formation du reseau de neurones avec une
bonne performance plutot que de se charger par loptimisation des performances du GPU.
12
2.3. CAFFE 13
2.3 Caffe
2.3.1 Definition
Afin quon puisse implementer certaines algorithmes de Deep Learning il nous faut un
Framework qui va faciliter le travail du developpeur.
Vu le grand succes et la popularite du Deep Learning dans de nombreuses applications
plusieurs communautes (Google et Facebook...) ainsi que de nombreuses universites (uni-
versite de Berkeley...) ont dirige leurs interets pour le developpement des Frameworks
de Deep Learning, concus essentiellement pour beneficier de lacceleration du GPU, qui
aident a faire tourner facilement les reseaux de neurones.
Comme on a deja dit dans le chapitre precedent, on a choisi de faire tourner des reseaux
de neurones convolutionnels (CNN) dans ce cas deux Frameworks de DL, Open Source,
peuvent etre utilises :
Torch : Cest un Framework developpe en Lua, il est tres flexible en termes de
support de diverses architectures de reseau de neurone profondes et aussi en termes
de bibliotheques supportees.
Caffe : Cest un Framework developpe, en C++/CUDA,par le centre de vision et
dapprentissage de Berkeley (BVLC) et par des contributeurs communautaires.
Dans le cadre de notre projet, on a choisi dutiliser le Framework Caffe parce quil est tres
utilise dans la reconnaissance de limage et il presente de nombreux avantages.
Ces avantages resultent essentiellement dans sa rapidite dans le traitement des donnees
massives ainsi que la maniere dont les modeles sont definis.
Le modele defini par caffe est forme par
Blobs, Layers et Nets : Caffe definit le modele par son schema propre (pas de
code), au fur et a mesure que les donnees traversent le reseau il y aura une com-
munication entre les donnees, dans et a travers les couches, ainsi que leur stockage.
Cette operation est realisee a laide du Blob qui fournit une memoire unifiee tenant
des donnees (les lots dimages, les parametres du modele. . . ).
14 CHAPITRE 2. PREPARATION DE LENVIRONNEMENT
2.4.1 Definition
On a eu la chance que NVIDIA, leader sur le marche des GPU, a developpe, en 2015,
un outil qui sappelle digits permettant de visualiser en temps reel la formation des re-
seaux de neurones concus pour la classification et la segmentation des images, ainsi que
2.4. NVIDIA DEEP LEARNING GPU TRAINING SYSTEM : DIGITS 15
la detection des objets toute en exploitant la capacite de calcul de ses fameux processeurs
graphiques. Cest cet outil quon va utiliser dans le cadre de notre projet.
Digits est une application Web ecrite en python qui fournit une interface graphique propre
pour linterfacage avec le Caffe.
A laide de cette interface intuitive vous pouvez gerer vos donnees et suivre le comporte-
ment et les performances des reseaux de neurones profonds en visualisant en temps reel
leurs formations.Vous pouvez concevoir et selectionner rapidement le reseau de neurones
qui sadapte le mieux avec vos donnees [13].
2.5 Conclusion
CUDA, Caffe, Digits Constituent les principaux outils fournis par NVIDIA Deep Learning
SDK afin de deployer des applications dapprentissage profond accelerees par le GPU.
Une fois que tous ces elements etaient prepares il ne reste que manipuler concretement
les algorithmes dapprentissage profond via des exemples. Cest ce qui fait lobjectif du
suivant chapitre.
Chapitre 3
Implementation
3.1 Introduction
Maintenant quon a bien prepare les joueurs, allons sur le terrain pour contempler les
performances et voir si ca va confondre avec nos attentes ou non.
3.2 Devices
Comme tout debut classique, on va commencer par trainer le plus simple modele qui
consiste a distinguer entre les categories des telephones portables, autrement dit, le modele
doit etre capable de pouvoir bien comprendre si la photo quon lui fournit aleatoirement
contient un iphone, un ipad ou un sumsung galaxy !
Tout dabord, on regroupe la base de donnees denviron 150 images en total sur trois
dossiers portant chacun le nom de celui de la categorie. On obtient alors un dossier pere
intitule Devices Contenant nos trois dossiers fils.
Ouvrons la jolie page daccueil de Digits a travers localhost, dela on peut creer les datasets
et les modeles.
17
18 CHAPITRE 3. IMPLEMENTATION
On a laisse les autres parametres par defaut tels quils sont. Choisissez le nom de votre
DataSet et cliquez create .
Ca va prendre quelques secondes vu que la taille de notre base de donnees est assez petite.
Vous aurez finalement cette page qui presente le nombre de categories pour le training et
la validation, la taille de votre Dataset. . .
Cliquez models->images->classifier.
Choisissez votre Dateset cree precedemment.
Inserez le nom de model.
Choisissez lalgorithme dAlexNet.
X Batch size : veuillez verifier le batch size par defaut a partir de fichier qui se
trouve dans le dossier de caffe intitule en general alexnet.prototxt . Commencez
la valeur par 10 en incrementant tout en gardant lil sur la performance de votre
GPU en %. (Pour notre cas on a atteint 40 comme limite avec 90% de performance).
X Changer le Learning rate le nombre de l epoch peut egalement ameliorer la
performance. Vous pouvez egalement consulter le Learning rate par defaut dans le
meme fichier ainsi que dautre information concernant cet algorithme.
Vous etes prets maintenant de trainer le modele en cliquant create . Le modele tournera,
entre-temps, les courbes peuvent vous visualiser le taux de precision et le taux de perte.
Ce qui va vous choquer vraiment dans ce state-la cest le taux de precision deteriore quon
peut bien lexpliquer par la petite taille de notre Dataset des le debut.
20 CHAPITRE 3. IMPLEMENTATION
Si tout va bien on peut tester le modele et voir la magie qui charme ! Choisissons une image
aleatoirement ou de votre ordinateur ou de linternet et tester. Vous allez remarquer quil
est intelligent mais pas assez, donc ca peut nous satisfaire mais pas assez !
En suivant notre instinct, on aura recours a trainer un autre modele avec une base de
donnees plus grande.
3.3. MNIST 21
3.3 MNIST
A la fin de cette partie, on sera capable de trainer Caffe a fin de reconnaitre les chiffres
manuscrits. On utilisera MNIST handwritten digit database comme base de donnees,
contenant 60000 images pour le training et 10000 exemples dimage pour le testing, et
LeNet comme algorithme concu specialement pour cette tache. Les deux sont mis a dis-
position par Yann LeCun sur son site officiel.
Pour le premier pas, on doit preparer la base de donnees en la telechageant depuis le site
officiel de Yann LeCun.
Si le telechargement est bien termine, ouvriez digits et creez la Dataset en changeant :
Choisissez un nom sans oublier dindiquer le chemin vers le dossier train qui se
trouve dans le dossier Mnist .
Lorsque le travail est termine, retournez a la page daccueil en cliquant sur DIGITS dans
la partie superieure gauche de la page. Vous devriez maintenant voir votre ensemble de
donnees repertorie sous longlet Datasets.
Digits a montre quil est brillant sur le domaine de classification des images, mais est-ce
le cas pour dautres domaines et dautres besoins ?
Pour repondre a cette question, on a recours a essayer avec la detection des objets dans
une photo donnee.
3.4 KITTI
Dans ce dernier exemple, on a choisi demployer les donnees de la piste de detection dob-
jets de la KITTI Vision Benchmark Suite. Vous pouvez bien evidemment utiliser toute
autre donnee que vous souhaitez mais faites attention Digits sattend a ce que les donnees
soient etiquetees dans le style des donnees KITTI.
Cette fois-ci on va telecharger la base de donnees de KITTI a travers le site web :
http ://www.cvlibs.net/datasets/kitti/eval object.php
24 CHAPITRE 3. IMPLEMENTATION
Vous serez face a une liste ou vous choisissez seulement ces telechargements :
Maintenant que le telechargement est fini, copiez ces fichiers dans $DIGITS ROOT/examples/object-
detection/ .
Ensuite executez le script Python prepare kitti data.py pour creer deux sous dossier
train et val , ca peut prendre un peu de temps depense principalement pour extraire
les fichiers compresses.
Enfin vous aurez $DIGITS ROOT/examples/object-detection/kitti-data/train,val/.
Si vous jetez un il sur les donnees vous allez remarquer quelles sont organisees de la
maniere suivante :
Pour chaque image du dossier image , il doit y avoir un fichier texte correspondant
dans le dossier label . Par exemple, si le dossier image contient une image nommee
toto.png, le dossier label doit inclure un fichier texte nomme toto.txt.
Inserer le chemin vers les dossiers train et val ou vous trouvez dedans deux dossiers
nommes image et label .
Gardez les autres parametres inchanges.
Cliquez Create .
Vous allez remarquer que la taille de la base de donnees creee cette fois-ci est tres grande
comparant aux precedentes (5.32 GB).
Comme DetectNet est derive de GoogleNet, il est bien recommande dutiliser le pre-traine
GoogleNet fourni par ImageNet, ceci servira a accelerer le training de DetectNet.
Vous pouvez trouver le modele pre-traine de GoogleNet sur ce lien :
http ://dl.caffe.berkeleyvision.org/bvlc googlenet.caffemodel
3.5 Conclusion
Ce nest pas la fin de chemin, heureusement, le Cloud nous a sauves !
Dans le chapitre suivant, Nous decouvrirons comment poursuivre notre travail sur le cloud.
Chapitre 4
La solution Cloud
4.1 Introduction
Comme dhabitude, pour tous problemes de memoire et de stockage de donnees, le Cloud
est la pour nous offrir, a travers Amazon Web Service, des machines virtuelles (dans notre
cas des GPUs) qui vont accelerer les algorithmes dapprentissage profond appliques a des
donnees enormes.
Cest un service web, destine aux developpeurs dapplications, qui permet de faciliter
lacces a des ressources, egalement les instances destines a des fins de calcul, fournies par
le Cloud Computing.
4.1.2.2 Avantages
Avant tous pour quon puisse utiliser et activer des instances EC2 il faut avoir acces
vers le Amazon Cloud Service via un compte Amazon.
Pour activer linstance g2.2xlarge il faut suivre les etapes suivantes [?] :
1. Passez par le site web Rosetta HUB pour sidentifier (entrer le login et le mot
de passe).
2. Choisissez le service que vous cherchez : EC2.
4. Selectionnez Ubuntu Server 14.04 LTS ... comme une image machine.
6. Cliquez sur next jusqua arriver a la page Add Storage , il est recom-
mande daugmenter la taille du stockage du root volume jusqua 20 GB
parce que 8 GB (mise par defaut) est insuffisante pour pouvoir utiliser le GPU.
.
7. Dans la page Configure Security Group , cliquez sur add rule et entrer
5000 dans la plage des ports et definissez la source a nimporte quel endroit. .
34 CHAPITRE 4. LA SOLUTION CLOUD
8. Cliquez sur review and launch puis sur launch , vous serez invite a creer
et a telecharger votre paire de cles afin que vous puissiez utiliser SSH dans
votre serveur. Telechargez la paire de cles et conservez-la dans un endroit sur.
.
9. Enfin cliquez sur launch et attendez jusqua ce que linstance demarre. Une
fois linstance est en cours dexecution une adresse IP public sera attribue a
elle. .
Sachant que mAP ( main Average Precision) est le meilleur indicateur de precision du
modele, on peut bien remarquer quon a bien reussi a trainer un modele de tres bon taux
de precision. Cest le moment devaluer la performance pratique du modele a travers le
test.
Pour quon ait les objets qui se trouvent dans la photo encadres par des rectangles on doit
selectionner Bounding Boxes dans Select Visualization .
[1] Loc. Knuchel : Le machine learning, cest quoi exactement ? Nouvembre 2013.
[2] Phillipe. Beraud : Une premiere introduction au deep learning. Avril 2016.
[3] Adil. Moujahid : A practical introduction to deep learning with caffe and python.
Juin 2016.
[4] Eugenio. Culurciellos blog : Neural network architectures. Juin 2016.
[5] Tual. Morgane : Comment le deep learning revolutionne lintelligence artificielle.
Juillet 2015.
[6] Le deep learning pas A pas : LimplEmentation (2/2). Disponible sur In-
ternet < https ://www.technologies-ebusiness.com/langages/le-deep-learning-pas-a-
pas-limplementation-22>.
[7] Object detection. Disponible sur Internet <
https ://github.com/NVIDIA/DIGITS/tree/master/examples/object-detection>.
[8] Louis . Ludovic : Machine learning et deep learning, comment ca marche ? Decembre
2016.
[9] Apprentissage automatique. Disponible sur Internet <
http ://www.nvidia.fr/object/tesla-gpu-machine-learning-fr.htmltp>.
[10] Traitement parallEle cuda. Disponible sur Internet <
http ://www.nvidia.fr/object/cuda-parallel-computing-fr.html>.
[11] Sharan. Chetlur : cudnn : Efficient primitives for deep learning. octobre 2016.
[12] Ubuntu installation. Disponible sur Internet < https ://gi-
thub.com/NVIDIA/DIGITS/blob/master/docs/UbuntuInstall.md>.
[13] Digits : Deep learning gpu training system. Disponible sur Internet <
https ://devblogs.nvidia.com/parallelforall/digits-deep-learning-gpu-training-
system/>.
[14] Amazon ec2. Disponible sur Internet < https ://aws.amazon.com/fr/ec2/>.
38
Annexe 1
Cette annexe contient les differentes commandes utilisees ,dans la preparation de lenvi-
ronnement, pour implementer des algorithmes de Deep Learning sur le GPU NVIDIA.
Cette annexe contient les differentes commandes utilisees ,dans la preparation de lenvi-
ronnement, pour implementer des algorithmes de Deep Learning sur le cloud.
42
43