| Deep Learning | |
|
|
|
Auteur | Message |
---|
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Sam 16 Juin 2018 - 17:15 | |
| Au lieu d'optimiser le réseau, j'ai essayé d'optimiser l'image d'entré pour essayer de 'voir' ce que le réseau comprend. Résultat: Un grand échec. J’obtiens du bruit. Il y a plein d'images de bruit qui donne la sortie désirée. Le soucis, j'imagine, c'est que le réseau ne sait pas ce qu'est une image de chiffre et ce qui n'en n'est pas. Il ne sait que mapper une image de chiffre vers un chiffre, mais il ne sais pas ce qu'est un chiffre. Teaser: Aujourd'hui je vais essayer de faire un GAN (Generative Adversarial Network), mais c'est un peu de boulot. Edit: Résultat (Image générée par un réseau de neurone après chaque étapes de confrontations) Il se passe clairement quelque chose. Mais j'ai pas l'impression que ça va bien terminer sur un chiffre au final. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Dim 17 Juin 2018 - 12:06 | |
| Ouais, le problème de MNIST, c'est qu'elle ne fournit que des chiffres en database. Ça serait cool aussi d'avoir des lettres, et autres trucs qui ont rien a voir, pour set un output "other" quand le réseau ne reconnaît pas un chiffre.
En tout cas bon courage, ça a l'air un peu compliqué les GAN, j'ai jamais osé m'y pencher encore :p
Et effectivement, l'image a l'air de converger vers quelque chose, une espèce de moyenne entre tous les chiffres? (on dirait un 8 flou) |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Mer 20 Juin 2018 - 0:19 | |
| Petit teaser: Il y aura donc du WebAssembly |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Mer 20 Juin 2018 - 14:34 | |
| Héhé cool cool C'est quoi sur la 2nd image? La reconstruction de ce que "voit" le réseau? T'as réussi pour l'apprentissage du coup? |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Mer 20 Juin 2018 - 23:19 | |
| J'ai pas vraiment réussit à entraîner un GAN. A la place j'ai fait un autoencodeur.
Ce qu'on voit à droite, c'est la reconstruction de l'image de gauche. Le réseau est entrainé que pendant 10 secondes, donc c'est pas flagrant pour le moment.
L'idée, c'est de résumé une image de 27*27 dimension, en un vecteur de 10 dimensions. Ce qu'on voit en haut, c'est 10 sliders pour se déplacer sur l'espace latent.
Normalement, une interpolation linéaire sur l'espace de dimension 10, devrait se traduire en une animation fluide dans l'espace des image 27x27. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Jeu 21 Juin 2018 - 9:49 | |
| |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Mer 27 Juin 2018 - 14:56 | |
| |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Jeu 28 Juin 2018 - 0:39 | |
| A oui, je m'en souviens. Merci Oni de les avoir retrouvé !
Pour mon application WebAssembly, j'ai besoin d'include les données du MNIST pour l'entrainement: J'ai ces fichiers: 7,5M ../third_party/mnist/t10k-images-idx3-ubyte 12K ../third_party/mnist/t10k-labels-idx1-ubyte 45M ../third_party/mnist/train-images-idx3-ubyte 60K ../third_party/mnist/train-labels-idx1-ubyte
Je n'ai besoin que des images d'entrainement: 45Mo. Une fois gzippé: 9.5Mo. Sinon, je pourrais faire l'entrainement "Web" sur le test set: 7.5Mo puis 1.6 Mo gzippé.
C'est un peut dommage, mais bon tanpis. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Jeu 28 Juin 2018 - 9:07 | |
| Y avait pas moyen de récupérer un fichier en streaming avec emscripten? Comme ça tu download le gros dataset pendant que tu train?
Ou sinon tu laisses l'utilisateur choisir avec un bouton, si c'est pas trop ******?
|
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Jeu 28 Juin 2018 - 21:26 | |
| |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Jeu 28 Juin 2018 - 21:41 | |
| C'est vraiment cool, la mise en page et l'interfacing emscripten sont vraiment bien foutus, j'ai jamais encore fait de trucs pareil J'ai pas tout compris par contre au niveau des outils etc. A et B ça représente quoi concrètement? Pourquoi c'est sur deux layers? On a une idée de ce que représente chacune de leur valeur? Ou l'auto encodeur choisis vraiment quelque chose qui n'a pas forcement de logique de notre point de vue? Les sliders j'imagine que ça représente les features c'est ça? |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Jeu 28 Juin 2018 - 22:18 | |
| A et B, c'est à peu près la même chose. En dessous de chacun, il y a 10 sliders. C'est pour controller les valeurs de l'espace latent (le milieu de l'autoencodeur) En 'explorant' l'espace latent, ça correspond à des images sur le dernier layer.
Les 10 dimensions ne représentent pas les 10 chiffres. C'est le nombre de dimensions dans lequel il est possible de représenter l'espace des images de chiffres. J'aurais pu en mettre un peu plus ou un peu moins. Moins il y en a, plus le goulot est petit.
La troisième image avec le slider (A ---- B), c'est un slider qui interpole linéairement les position des images A et B dans l'espace latent. Ca produit une interpolation non linéaire dans l'espace des images. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Jeu 28 Juin 2018 - 22:21 | |
| D'accord, mais y a une raison particulière pour avoir choisis deux espaces latents plutôt qu'un?
|
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Jeu 28 Juin 2018 - 22:29 | |
| Le code est là: https://gitlab.com/ArthurSonzogni/WebNeural/blob/master/src/http/AutoEncoderInterpolation/main.cpp(C'est court, mais c'est un peu sale ^^) Il n'y en a qu'un seul que je considère comme étant vraiment l'espace latent. Mais il est vrai qu'il y a deux layers de taille (10) au milieu. Il n'y a pas vraiment de raison. J'aurais pu prendre 40 et 10. Il sont reliés par une transformation linéaire et une activation sigmoid. J'utilise ici la sigmoid pour avoir des nombres entre 0 et 1. C'est pratique car ça va correspondre à mon slider. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Jeu 28 Juin 2018 - 22:34 | |
| Genre ça c'est sale C'est très cool en tout cas, j'ai hâte d'en voir plus et d'avoir un peu plus de temps pour me pencher sur tout ça. Les démos web interactives c'est la vie! |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Dim 1 Juil 2018 - 12:46 | |
| |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Lun 2 Juil 2018 - 23:10 | |
| Haha, j'y suis déjà abonné! |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Sam 7 Juil 2018 - 10:45 | |
| Bon, j'ai perdu des heures a essayer d'installer tensorflow avec le support GPU. Je me retrouve avec un "illegal instruction" quand je lance le script "hello world" qu'ils donnent pour voir si tout fonctionne. J'ai donc essayé une version ultérieure (1.5) qui devrait mieux gérer mon CPU, je me suis retrouvé avec une version qui ne supportais pas mon "Cuda capability" de 3.0 (il fallait 3.5). Cette fois il fallait donc compiler soit même tensorflow (version 1.5) pour avoir la possibilité de spécifier un "cuda capability" en 3.0. Tout semble fonctionner, jusqu'a des soucis de compilation. J'ai finis par laisser tomber et je suis passé du côté de torch, avec du scripting en lua (contrairement a tensorflow ou c'est du python). Les exemples sont full cpu (tristesse) mais j'ai le support GPU normalement, je n'ai pas encore trop creusé mais ça a l'air de bien fonctionner. Il y a l'air d'y avoir moins de documentation/exemples/projets sous torch, mais il y a quand même des choses interessantes: https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/lua.htmlhttps://github.com/torch/tutorialshttps://github.com/clementfarabet/ipam-tutorials/tree/master/th_tutorialshttps://github.com/torch/torch7/wiki/Cheatsheethttps://github.com/torch/demosJe vais me focaliser sur la reconnaissance de digits sur le dataset MNIST pour commencer. |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Dim 8 Juil 2018 - 4:37 | |
| J'ai essayer de rendre mon code multithread. Avec 8 fois plus de threads, j'ai diminué les performance par 2. XD |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Dim 8 Juil 2018 - 10:47 | |
| Ahahah ***** xD Au moins avec Cuda tu sens quand même la différence, sur l'apprentissage Mnist ça va 10x plus vite sur ma gtx670 que sur mon vieux quadcore. Faut voir les diff de perfs entre un gros threadreaper et une 1080 après |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Lun 9 Juil 2018 - 19:19 | |
| |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Mar 10 Juil 2018 - 23:57 | |
| Bon ça y ai j'ai compris pourquoi je n'avais pas de meilleurs performances avec plus de threads. Le nombre d'itérations du test avait été augmentée entre les deux commits et je comparais pas la même chose. Au final j'ai quelque chose qui scale linéairement. \o/ (ça m'apprendra à debugger des trucs à 5h du matin) - onilink_ a écrit:
- Une page que je trouve tout a fait géniale qui montre les avancées dans les types de réseaux et méthodes d'apprentissage + ce que ça a permis de gagner niveau précision etc...
http://rodrigob.github.io/are_we_there_yet/build/classification_datasets_results.html
ça fait plein de lecture. - onilink_ a écrit:
Edit: https://youtu.be/pp7HdI0-MIo Je reste bouche bée par cet example. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Mer 11 Juil 2018 - 22:19 | |
| Ah cool! Tu gagnes combien de perfs du coup? |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Mer 11 Juil 2018 - 22:57 | |
| Et bien, c'est quasiment 4 fois plus rapide avec 4 threads au lieu de 1. Avec 8 threads (processeur 4 core (+ 4 hyperthread)), c'est un poil plus rapide mais c'est juste 4.1x plus rapide que avec 1 thread. |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Jeu 12 Juil 2018 - 9:58 | |
| Wow nice! Pour l'apprentissage et l'inférence? Je me souviens j'avais testé une lib, avec inférence sur CPU d'un gros réseau, sur threads ça divisais le temps par un peu plus de 2 (bon après j'ai un vieux quadcore).
|
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Ven 13 Juil 2018 - 19:47 | |
| Je me suis amusé a utiliser des tools online basé sur des réseaux de neurones. J'ai crée une image simple avec blender: https://i.imgur.com/p2rpm9k.jpgPuis j'ai utilisé neural style avec un tableau: => Nécessite déjà beaucoup de calculs/mémoire pour cette taille, donc je ne peux pas faire plus grand. Puis j'ai passé un coup de https://letsenhance.io (gratuit pour 15 images on dirait): https://i.imgur.com/bbJldW3.jpgLe résultat est plutôt stylé, il a compris que c'était un tableau, a ajouté du grain et même des coups de brush. Y a juste un défaut en plein milieu (le truc vert), mais c'est simple a réparer. |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Jeu 2 Aoû 2018 - 21:33 | |
| Merci Onilink pour ces liens! De mon côté, j'avance très peu. Les vacances y sont pour beaucoup. Je n'arrive toujours pas à faire fonctionner mon GAN. Voici ce que j'obtiens, on voir clairement plusieurs étapes 1) Bruit (Génération 0 à 5) 2) Forme Blanche au milieu (Génération 6 à 10) 3) Forme blanche déformé. On commence à imaginer des chiffres. 4) Du blanc, du blanc, du blanc. Je me demande bien pourquoi ça dégénère à l'étape 4. Des idée? Y aurait'il des médecins des réseaux de neurones? - Spoiler:
|
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Ven 3 Aoû 2018 - 11:01 | |
| Très étrange en effet. Faudra que j'essaye de porter ton GAN sous torch pour voir si ça marche. Ça va sinon les vacances? Pas trop chaud? |
|
| |
arthuro Utilisateur confirmé: Rang ****
Messages : 1483 Localisation : Paris Projet Actuel : Diagon https://arthursonzogni.com/Diagon
| Sujet: Re: Deep Learning Ven 3 Aoû 2018 - 22:19 | |
| Oui, j'ai passé de belle vacances avec des amis dans le pays basque. Des très belle randonnées, océan, plages tennis et visité des villes sympa, Espellette, Bidart, Biaritz, Bayonne, Henday,, San Sebastian, ... Voici mon réseau: - Spoiler:
const size_t features = 64; const float keep_probability = 0.8;
// Generative network. auto g_i = Input({6, 6, 3}); auto g_1 = Dropout(g_i, keep_probability); auto g_2 = BatchNormalization(g_1);
auto __3 = Deconvolution2D(g_2, {5, 5}, features, 2); auto __4 = LeakyRelu(__3); auto __5 = Dropout(__4, keep_probability); auto __6 = BatchNormalization(__5);
// Layer 1 auto g_3 = Deconvolution2D(__6, {5, 5}, features, 1); auto g_4 = LeakyRelu(g_3); auto g_5 = Dropout(g_4, keep_probability); auto g_6 = BatchNormalization(g_5);
// Layer 2 auto g_7 = Deconvolution2D(g_6, {5, 5}, features, 1); auto g_8 = LeakyRelu(g_7); auto g_9 = Dropout(g_8, keep_probability); auto g_10 = BatchNormalization(g_9);
// Layer 3 auto g_11 = Deconvolution2D(g_10, {5, 5}, 1, 1); auto g_o = Sigmoid(g_11);
// Build a descriminative network. auto d_i = Input({27, 27});
// Layer 1 auto d_1 = Convolution2D(d_i, {5, 5}, features, 2); auto d_2 = LeakyRelu(d_1); auto d_3 = Dropout(d_2, keep_probability);
// Layer 2 auto d_4 = Convolution2D(d_3, {5, 5}, features, 1); auto d_5 = LeakyRelu(d_4); auto d_6 = Dropout(d_5, keep_probability); // Layer 3 auto d_7 = Convolution2D(d_6, {5, 5}, features, 1); auto d_8 = LeakyRelu(d_7); auto d_9 = Dropout(d_8, keep_probability);
// Layer 3 auto d_10 = Linear(d_9, {128}); auto d_11 = LeakyRelu(d_10);
// Layer 4 auto d_12 = Linear(d_11, {2}); auto d_o = Softmax(d_12)
Ensuite, ma LossFunction, c'est l'entropie croisée. (J'ai aussi essayé avec moyenne des distances aux carrés) |
|
| |
onilink_ Modérateur
Messages : 9183 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: Deep Learning Mar 7 Aoû 2018 - 18:50 | |
| |
|
| |
Contenu sponsorisé
| Sujet: Re: Deep Learning | |
| |
|
| |
| Deep Learning | |
|