YouTube Transcript:
Coder un réseau de neurones convolutifs de classification d'image avec Python et Tensorflow_
Skip watching entire videos - get the full transcript, search for keywords, and copy with one click.
Share:
Video Transcript
View:
si on s'amuse à regarder un rang 12 à
avoir c'est assez incroyable tac le
rondo 10 ici va bien focus sur les yeux
hello tout le monde est bienvenu dans
cette vidéo alors dans ce type de vidéos
je vais essayer de vous montrer quelques
petits projets que vous pourrez prendre
que vous pourrez personnaliser à votre
sauce en fait et en faire des projets
personnels donc on va surtout focus
cette série sur le compte twitter
viennent sur ledit planning j'espère que
ça va vous plaire dites moi le but du
jeu c'est vraiment de faire des petits
tuto comme ça j'aime pas trop dire tuto
mais des petites life coaching on va
dire où je vais vous montrer en fait et
vous expliquer les grandes parties du
code qu'on va produire ensemble
alors comme vous en doutez je vais pas
coder non plus en live devant vous j'ai
dû code là à côté de moi mais le but du
jeu c'est que je vous montre le flou et
que je vous fasse comprendre tout le
cheminement logique et que je vous
explique aussi les parties de code qui
pourrait être un peu compliqué parfois
et pour le coup je tiens vraiment à vous
dire ça parce que le nombre de personnes
sur youtube qui font joueur qui connaît
en live alors qu'il coûte pas en live ça
ça me hérisse le poil doux je veux pas
rentrer dans cette case
bon allez c'est parti donc on va tout de
suite commencé sur google collab donc la
règle du jeu c'est de faire un petit
type pokédex vous savez pokédex pikachu
pokémon tout ça tout ça en fait sascha y
tient un pokédex ou pas que sasha
d'ailleurs mais bref c'est un petit
objet qui quand vous prenez une photo
d'un pokémon
en fait il vous dit quels types de
pokémon say et on va s'amuser à coder ça
alors vous doutez bien que je vais pas
récolter des jeux de données sur
l'intégralité des pokémon est donc pour
l'instant on va juste s'amuser à
détecter un pikachu et un rondoudou ok
allez c'est parti
donc je vais le faire sur google call a
donc voilà un peu la tête du réseau ne
rende qu'on va essayer de construire
ensemble donc y aura des couches de
convolution neil de pooling et une
flatteuse meilleur à la fin et on va
construire un petit modèle danse à la
fin pour pouvoir nous prédire soit un
pikachu soit un rondo d'où vous
inquiétez pas on va faire tout ça
ensemble
bien sûr tout le code sera dispo sur
github
ne vous inquiétez pas pour ça non plus
alors déjà le premier truc que je vais
faire je vais aller chercher une image
d'un pikachu et dans mon doudou et je
vais l'affiché ici donc ici je les
berges sur mon github vous pourrez
l'utiliser bien sûr comme ça aussi
donc voilà on a bien une image d'un
pikachu et d'un rondoudou d'accord alors
déjà vous me dire ok mais comment est ce
qu'on fait en fait pour reconnaître un
pic à shauna ronde où on fait ce qu'il
faut comprendre c'est que tous ces
objets en fait toutes ces images sont
des nombres sont des chiffres encoder du
1er gb notamment quand ça encoder sur
trois canaux ou si on le convertit en
voir et blanc et qu'on essaye de
l'affiché on peut l'affiché sous forme
de numéros et vous allez comprendre
donc là ici si je m'amuse à l'affiché je
le convertit du rgb au gré c'est-à-dire
en noir et blanc
je vais juste me d'un anti frêche chaude
pour ce soit soit noir soit blanc
d'accord 1 127 c'est à dire que rappaz
nuances de gris ce sera à cause du
contraste et si j'essaye de l'affiché
donc j'essaye de d'afficher cette petite
image là on voit que ça ressemble un peu
à un pikachu et si j'essaye de dézoomer
un peu peut-être si vous avez beaucoup
d'imagination vous allez voir les héros
ici qui correspondent à
la pointe de l'oreille d'accord et là
vous voyez tous les petits détails et en
fait c'est exactement ce type de choses
qu on va envoyer notre réseau neurones
ah oui et pour s'amuser je peux aussi
vous le montrer sous forme d'un coeur
c'est un peu plus visible et là vous
voyez bien effectivement la forme du
coeur qui se dessine et c'est comme ça
en fait qu'un réseau de neurones va
recevoir l'information
d'accord il va le recevoir sous cette
forme alors maintenant ce qu'il faut
comprendre en réseaux de neurones
convolution elle en fait c'est qu'un
réseau neurones convolution neil il va
essayer de faire des filtres pour
reconnaître si on veut les les bordures
les formes qui vont faire que c'est un
pikachu ou qui vont faire que ça
rondoudou alors c'est quoi un filtre en
traitement d'image
alors si on s'amuse juste à faire du
traitement d'image très très simple donc
par exemple ici on va prendre une image
en noir et blanc d'un pikachu je vais un
peu de métier d'ailleurs on va prendre
l'image en noir et blanc d'un pikachu de
tak hockey et maintenant si je vais
appliquer ce qu'on appelle un kernel
donc incarne elle sait quoi en fait
c'est un noyau qui va venir passer sur
l'image donc incarnait l'un noyau en
fait c'est une matrice qui va venir
passer surtout les pixels de l'image et
qui va venir faire des opérations
mathématiques pour mettre en valeur
certaines choses par exemple si on prend
le kernel qui ajuste 1-1 au milieu c'est
à dire qu'il va mettre en évidence
uniquement le pixel qui a sa place ici
l'image ne va pas changer d'accord par
contre si on prend un kernel qui va
venir mettre en évidence par exemple les
lignes verticales donc ici le kernel va
avoir cette tête il va donner moins de
force aux pixels qui sont à gauche et
plus de force aux pixels qui sont à
droite et du coup on fait ça va avoir
pour effet de faire une genre de
collines comme ça de petites pentes qui
va passer sur toute l'image et qui va
mettre en surbrillance l'intégralité des
traits verticaux ou assimilés un peu
avertis qu'aux comme vous pouvez le voir
ici sur les oreilles et il va pas ici
prendre les lignes qui sont beaucoup
trop horizontaux d'accord
maintenant si on le faire l'inversion si
on fait incarnent l horizontale vous
allez voir que par exemple la tête ici
qui était un peu moins mises en évidence
le haut de la tête ici va être beaucoup
plus mis en évidence donc ici à la place
d'avoir une genre de pente verticale on
va voir une pente
en horizontal en fait qui va venir du
bas vers le haut et tout ce qui va être
pris en fait vous l'imaginez par cette
vague va être mis en surbrillance est
donc en fait cette image de vagues en
fait qui va passer sur l'image c'est un
peu comme ça qu'il faut vous représentez
la convolution et c'est pour ça qu'on
appelle ça des réseaux de neurones
convolution neil c'est parce qu'en fait
on va pas on va vers passer des fils de
convolution alors j'avais préparé un
petit truc que je vous mets là on va
voir ensemble
à quoi ça correspond donc voilà ici en
fait un filtre convolution neil ça va
avoir cette tête c'est à dire que on va
faire passer donc ici c'est lille à
convolution de deux signaux carré par
exemple la convolution de deux signaux
carrés donne un signe aux un signal
triangulaire alors je vous laisserai
allez voir ça c'est sur wikipédia et
vous avez wikipédia vous expliquent très
très bien ce qu'elle à convolution je
peux pas vous l'expliquer laon détails
mais globalement en fait il faut il faut
que vous compreniez que c'est la valeur
de l'air qui va être en commun à un
instant donné entre les deux objets
auxquels vous à les appliquer la
convention auquel est maintenant si on
essaye de résoudre notre problème de
filtres de réseaux convolution elle pour
détecter des pokémon lorsqu'on va faire
déjà c'est qu'il nous faut récupérer des
données de pokémon et pour ça je vais
vous montrer une petite astuce
donc vous pouvez aller sur google comme
ça d'accord et vous choisissez par
exemple pikachu et ici vous allez avoir
une base de données depuis quatre jours
alors vous pouvez récupérer
l'intégralité des images en python et
après les triais moi j'aime bien cette
petite extension tac qui vous permet en
fait de sélectionner toutes les images
que vous voulez pas dans votre jeu de
données ici par exemple on voit pas bien
pikachu appel sélectionné ici non plus
ici non plus ici non plus ici non plus
on va garder vraiment tout ce qui
ressemble un pikachu qu'on veut garder
notre base d'image d'accord et après
vous cliquez sur dawn lahoud et ça va
vous télécharger automatiquement
l'intégralité des images et donc en fait
voilà vous allez avoir toute vos images
sous c'était donc là j'ai récupéré des
images d'un pikachu et des images d'un
rondoudou à lorient n'a pas beaucoup un
gg pas du tout récupérer beaucoup
d'image mais en fonction de ce que vous
voulez reconnaître il va potentiellement
falloir récupérer énormément d'image
donc là il n'a vraiment pas beaucoup
mais c'est juste pour comprendre
ensemble donc du coup une fois que j'ai
récupéré tous dataset je n'ai mis sous
un format zip gelé mis sur github et on
va le récupérer ici avec cette ligne de
code
on va le daisy paix ensemble et on va
récupérer toutes les données ici date à
cette taxe pikachu pokémon ah oui j'ai
aussi un truc pokémon mais on va pas
l'utiliser là tout de suite
et là ici vous allez avoir quand vous
pouvez le voir l'intégralité des images
de mon pikachu ou de me rendre doudou
directement mis ici sur collab d'accord
d'ailleurs à ce que j'ai mis un runtime
gpgp hamid runtime gpu bon c'est quoi ta
que je trouvais juste d'un gpu je
redémarre et ça soit très très grave à
prendre une seconde ont maintenant une
fois qu'on est là qu'on a nos données on
va voir combien on en a donc là on a on
va lister l'intégralité de nos données
dans notre répertoire d'accord qui va
être ici notre répertoire dataset le
problème de ça en fait c'est que ça va
me prendre je donnais pokémon que je
veux pas forcément qu'ils me prennent
donc je vais le supprimer tech et je
vais juste récupérer pikachu iron doudou
il veut pas le sucre mieux comme ça je
vais le faire en ligne de commande
ok donc là il va me supprime et akpo
camani a disparu très bien moi je vais
laisser ça ici du coup si je regarde
combien j'en ai je vais en avoir 174
d'accord tu veux me dépasser ici au cas
où
alors maintenant qu'on a ça on va
utiliser une fonction de queyras pour
pré procès c'est en fait notre jeu de
donner le but du jeu ça va être d'avoir
les mêmes tailles sur nos images ça va
être si jamais il n'y a pas les mêmes
tailles bien les mettre à la même taille
ça va être de les battre chez d'accord
le but du jeu quand on fait un réseau de
neurones c'est pas envoyer les images
une à une c'est apprendre beaucoup trop
de temps et en fait ça serait pas utile
pour un réseau de neurones du jeu c'est
de les envoyer par exemple trois parcs 3
ou 30 par 30 etc
ici on n'a pas beaucoup d'imagés dont
notre batterie va être un peu petit par
exemple on peut prendre un badge size
tech on peut prendre un backside égale à
3 par exemple
après il nous faut l'hymne la longueur
et la largeur
qu'on veut sur notre image donc ici on
va faire des images carré par exemple
tac 200 et l'autre image 1200 aussi une
fois qu'on a ça on va apporter donc
utiliser une fonction de cadre à ce qui
va nous permettre de définir notre très
d'accord donc la fonction de queyras
c'est celle-là près processing image et
il va aller récupérer en fait les images
depuis le répertoire d'accord donc en
fait chaque nom de répertoire va être
égale à une classe pour lui tac une
petite erreur de syntaxe ah oui c'est
pas images cmg j'avais mis dans mon
exemple un ticket est ok donc là ça va
mettre un peu de temps très rapides donc
qui va aller récupérer les données mbaam
voilà il a récupéré les données
maintenant on va construire un autre jeu
de validation d'accords 9e pareil donc
là on a pris notre jeu de validation qui
est pareil un autre jeu de training
voyait bien sûr le but du jeu c'est pas
du tout de prendre les mêmes directory
c'est d'avoir un directory de validation
et un directory d'entraînement mais là
c'est vraiment pour l'exemple mais il
faudra bien sûr inversée enfin modifier
le data dire et faire un data dire de
validation d'accords donc maintenant si
on regarde un peu les données de tak
si on regarde les trois premiers de
n'goni classe name is no 10 find
pourquoi c'est ma faute c'est parce que
je n'ai pas défini là c'est égal au
nombre des classes n'est donc si vous
vivez un pikachu avant doudou qui vont
être les deux noms de notre répertoire
d'accord donc ici bas donc voilà ici on
va voir par exemple si on fait ça on va
avoir les on va avoir trois images comme
ça qu'ils correspondent en fait à une
autre base size donc ça va être promue
notre première notre premier jeu de
données qu'on va dire
ok donc si on continue un peu on va
s'amuser maintenant à définir notre
réseau de neurones convolution n'est
laissée là où ça va devenir plutôt
intéressant donc on va déjà importé
depuis l'un d'eux sort floqué race on va
importer layher d'accord ça va nous
éviter de faire de trop taper de choses
maintenant ce qu'on fait c'est qu'on va
lui dire que le nombre de classes est
égale à 2 soit pikachu 72 d'accord et on
va définir un modèle donc notre modèle
en queyras
on doit le mettre dans un c'est quoi le
show d'accord qui va on peut nous servir
de conteneurs donc ici on va définir nos
couches on va déjà utilisé une couche de
reus kyling en fait pour sky leno 255 on
va les normaliser de 0 à 1
tac on utilise cette couche là layher
expérimental processing rue scaling
comme vous pouvez le voir
et après dans un réseau de neurones
convolution elle sur remontant au ici on
va faire une couche de convolution
d'accord et après on va faire une couche
de pooling d'accord et on va enchaîner
comme ça pour convolution pauline
convolution pulling convolution pulling
d'accord la couche de convolution son
but du jeu ça va être en fait de trouver
les filtres qui vont bien correspondre
pour décrire notre image d'accord et le
but de la couche de pooling en fait ça
va être de réduire notre image pour au
final avoir un jeu de données on va dire
qu'on va envoyer notre réseau dense de
plus en plus petit et de plus en plus
conca tenais pour représenter au maximum
les feature les plus peuplés plus les
plus petit jeu c'est plus parler ok donc
donc ici on va faire une couche de
convolution les russes point qu'on peut
aider ici on va dire qu'on veut 128
neurones dakar tac 4 et on va mettre
activé ichel une fonction d'activation
relu d'accord et après qu'on a fait ça
on va mettre une couche de poulies de
max pauline pardon alors la couche de
max koenig va correspondre à quoi en
fait elle va prendre le maximum à chaque
fois du phénomène de pooling d'accord
vous pouvez aussi avoir des couches
d'avril pauline par exemple qui va
prendre la moyenne de votre pulling
entre tous vos pixels du coup après
qu'est ce qu'on fait mais en fait on a
ce que je vous ai dit d'en faire trop le
pied collé ici on va faire par exemple
quatre fois alors ce qui est bien ce qui
est convenable c'est qu'on va essayer de
réduire à chaque fois par deux et on va
essayer de garder des unités de deux des
puissances de 2 à 16 une fois qu'on a ça
donc on compte deux des max pulling on
va mettre une couche de flatteurs donc
très simplement en fait la couche de
flatteurs ça va nous permettre de
construire un vecteur à partir de notre
matrice d'accord qui va pouvoir être
envoyé un autre réseau dense ici on va
donc définir une couche dans ce qui va
prendre par exemple 64 attaques comme ça
neurones
et toujours pareil on va mettre une
couche d'activer ichel relu alors vous
pourrez jouer avec les différentes
activités pour voir si ça modifie vos
performances bien sûr et ensuite la
dernière couche et bien on va sortir une
meilleure danse donc qui va être égal à
2 mais on la définit on a juste maintenu
une classe d'accord est par contre
l'activité chez elle ici ça va peut-être
une rue lui ça va être une softmax en
fait pour avoir la probabilité entre nos
différentes classes ok donc là on a
notre réseau neurones qui définit on
peut le run est comme ça une fois qu'on
a défini notre et zone euro n'entendent
sur flo il va nous falloir le compiler
donc pour le compiler on va juste faire
un modèle point de compile on va prendre
une option meisels adam exemple que le
plus utilisé donc ensuite la lotte on va
prendre par exemple ici une par thack
catégorique au l'entropie
ok et la métrique ça va être notre acura
ci pourra entraîner
ok si on compile ça y'a pas de faute
ok maintenant qu'on a fait ça on va donc
le fit alors vous pouvez vous amuser à m
à utiliser sans rebord dont verra
d'autres tuto si vous voulez comment
est-ce qu'on utilise tonnes soit board
en détail pour un peu monitorer votre
réseau de neurones pendant qu'il apprend
même après l'entraînement et si on veut
juste faire notre fit donc ici encore
une fois c'est juste pour l'exemple
missiles à la les datas de validation
vont être les mêmes que les dates en
entraînement et c'est juste que j'avais
pas m'amuser à récupérer pendant trois
heures des pikachu sur internet mais je
vous conseille de le modifier en bien
sûr ici avant d'être une époque par
exemple de devant et on va entraîner
notre réseau neurones ici sur 20 époque
c'est plutôt rapide puisqu'en gpu est en
fait y'a pas beaucoup pour être honnête
de comment on appelle ça de de données
donc en fait c'est hyper rapide ok donc
encore une fois ici tac ici notre
validation acura si vous voyez qu'elle
est pareil que notre acura si donc on
pourrait dire voici général ce trop bien
mais en fait les deux sont les mêmes
données donc en fait ça va un peu rien
dire vous pouvez vous amuser à faire
pointu mairie pour voir l'intégralité de
votre réseau neurones et après
maintenant si on s'amuse à vouloir
prédire un peu comme un pokédex notre
réseau neurones enfin les images à
prédire des images l'on peut juste faire
ça et on va venir sélectionner un
fichier ici donc là bien sûr c'est pas
du jeu mais c'est vraiment pour
l'exemple je veux reprendre une image
qui l'a déjà vu dans son jeu de données
c'est vraiment pas du jeu en mai c'est
vraiment pour vous faire comprendre tac
et ici il va nous dire que c'est bien un
pikachu comme vous pouvez le voir et
vous voyez qui si le soft max en fait ce
qui fait c'est qui l'envoie la
probabilité d'accord d'existence sur sa
d'existence sur 0 ou 1 et du coup à la
place de lui demander de prédire la
probabilité vous pouvez si vous faites
juste un predict vous pouvez lui
demander de prédire les classes
directement
vous pouvez soit le dire prix dictait
les il va vous prédire la probabilité en
utilisant de softmax sans vous pouvez
lui dire de prédire les classes et il va
vous prédire la classe des roues est
donc ici voilà vous avez un petit
pikachu alors c'est pas fini parce qu'on
va essayer de comprendre qu'est ce qu'il
ya derrière les filtres d'accord donc je
vous ai mis un petit un petit truc sympa
ici que vous pouvez vous amuser à
utiliser oui ça c'est ma faute je sais
ce que c'est ok cool bon après quelques
débats ging ça marche donc ici on va
voir l'intégralité des filtres qui ont
été produits et vous allez voir qu'il a
potentiellement focus sur certaines
choses
donc ici pour revoir un pikachu il n'y a
rien du tout point à pikachu super
pourquoi je pense qu'il n'y a pas assez
de données
par contre la chose intéressante c'est
si on s'amuse à regarder pour le coup un
rondoudou si on s'amuse à regarder avant
douze à avoir c'est assez incroyable tac
le rondo 10 ici va bien focus sur les
yeux voyez les désoler la caméra elle
s'est éteinte sans que je m'en rende
compte du coup j'étais en train de vous
expliquer que en fait c'est comme ça je
sais plus où tu rougemont été arrêté du
coup j'étais en train de vous expliquer
que c'est comme ça en fait qu'on pouvait
voir un réseau de neurones convolution
elle et les filtres que ça produit donc
moi je vous invite vraiment utiliser ce
petit projet pour s'amuser en fait
finalement pour comprendre ensemble ce
qu'un réseau de neurones convolution
onel et le prendre et l'appliquer en
fait avoué essayer de prédire ce que
vous voulez vous pouvez essayer de
prédire de construire pokédex qu'ils
vainquent ou prédire tous les pokémon si
vous voulez passer un peu de temps à
essayer de récolter de la donner ou si
vous avez déjà des données pouvez vous
amuser je sais pas moi à essayer de
reconnaître un hélicoptère d'un avion ou
des choses comme ça ça peut être des
choses hyper intéressante et ça vous
changera un peu si vous voulez un peu
apprendre à vous vendre entre guillemets
sur votre cv à changer à mettre à la
place de maître que vous faites de la
classification sur des chiffres
pouvaient mettre que vous faites de la
classification sur des pokémon c'est
tout aussi rigolo bon voilà j'espère que
ce type de vidéos vous plaît dites moi
au contraire de la vidéo si ça vous a
plu comme d'habitude à la prochaine dans
une prochaine vidéo c'est lui
[Musique]
[Musique]
Click on any text or timestamp to jump to that moment in the video
Share:
Most transcripts ready in under 5 seconds
One-Click Copy125+ LanguagesSearch ContentJump to Timestamps
Paste YouTube URL
Enter any YouTube video link to get the full transcript
Transcript Extraction Form
Most transcripts ready in under 5 seconds
Get Our Chrome Extension
Get transcripts instantly without leaving YouTube. Install our Chrome extension for one-click access to any video's transcript directly on the watch page.
Works with YouTube, Coursera, Udemy and more educational platforms
Get Instant Transcripts: Just Edit the Domain in Your Address Bar!
YouTube
←
→
↻
https://www.youtube.com/watch?v=UF8uR6Z6KLc
YoutubeToText
←
→
↻
https://youtubetotext.net/watch?v=UF8uR6Z6KLc