Outils pour utilisateurs

Outils du site


darknet_letters

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
darknet_letters [2019/09/09 14:30] – [Morale du jour] sergedarknet_letters [2019/09/18 15:16] – [Comment aller plus vite ?] serge
Ligne 6: Ligne 6:
 {{::2019_08:shot_22.png?400|}} {{:2019_08:shot_17.png?400|}} {{::2019_08:shot_22.png?400|}} {{:2019_08:shot_17.png?400|}}
 </WRAP> </WRAP>
-<WRAP center round box 60% centeralign> +
-2 0.37 0.31 0.18 0.18 \\ +
-356 0.07 0.27 0.13 0.13 \\ +
-29 0.44 0.14 0.1 0.1 \\ +
-127 0.54 0.49 0.13 0.13 \\ +
-99 0.27 0.95 0.21 0.21\\ +
-</WRAP>+
  
 <WRAP center round box 60% centeralign> <WRAP center round box 60% centeralign>
Ligne 52: Ligne 46:
   @audio    memlock     unlimited   @audio    memlock     unlimited
  
-# Le user doit être dans le gropue audio!+# Le user doit être dans le groupe audio!
 </code> </code>
 ====Installation==== ====Installation====
Ligne 84: Ligne 78:
    
 <code txt> <code txt>
-1 - Affichage du logo + 1 - Retour au logo 
-2 - Lancement de letters + 2 - Lancement de letters 
-    SPACE pour changer de musique +     SPACE pour changer de musique 
-3 - Fabrication des shot pour l'IA + 3 - Fabrication des shot pour l'IA 
-4 - Conversion en json + 4 - Conversion en json 
-H - Help + 5 - Conversion d'une musique en image 
-R - Reset+ H - Help 
 + R - Reset 
 + Echap - Quitter
 </code> </code>
  
Ligne 99: Ligne 95:
 En 4: Les fichiers midi sont traduits en json pour être facilement utilisé en python. En 4: Les fichiers midi sont traduits en json pour être facilement utilisé en python.
  
-Le jeu crée les images et pour chaque image le **[[yolo_avec_mes_propres_images#fichier_txt_localisant_le_ou_les_objets_dans_l_image| fichier txt]]** correspondant qui décrit le numéro de classe et la position des objets dans l'image.+En 5: Crée un jeu d'images pour ensuite tester l'IA avec show_letters.py 
 + 
  
 ===== Création du set d'images pour l'apprentissage ===== ===== Création du set d'images pour l'apprentissage =====
 ====Création des images==== ====Création des images====
   * Création des images avec l'option 3.   * Création des images avec l'option 3.
-Pour chaque image toto.png, un fichier toto.txt est créé pour décrire les objets dans l'image, avec le numéro de l'objet: voir +Pour chaque image toto.png, un fichier [[yolo_avec_mes_propres_images#fichier_txt_localisant_le_ou_les_objets_dans_l_image| fichier txt]] est créé pour décrire les objets dans l'image, avec le numéro de l'objet: voir 
 [[yolo_avec_mes_propres_images#creation_du_set_d_apprentissage|Création du set d'apprentissage]] [[yolo_avec_mes_propres_images#creation_du_set_d_apprentissage|Création du set d'apprentissage]]
 +
 ====Préparation de Darknet==== ====Préparation de Darknet====
 ===Conversion=== ===Conversion===
Ligne 200: Ligne 199:
  
 ===obj.data=== ===obj.data===
-Défini les chemins des fichiers utilisés:+Défini les chemins des fichiers utilisés: les chmin relatif sont comptés depuis le dossier darknet, d'où sera lancé la commande de l'apprentissage automatique, voir ci-dessous: 
 +  ./darknet ..... 
 +  
 <code txt> <code txt>
 classes = 380 classes = 380
Ligne 209: Ligne 210:
 </code> </code>
  
-====Apprentissage==== +====Apprentissage soit Training appelé train==== 
-Ou Training appelé train (non! pas de locomotive à vapeur ici!)+Non! pas de locomotive à vapeur ici !
  
 ===Modifications suite à Apprentissage raté=== ===Modifications suite à Apprentissage raté===
-  * yolov3-tiny.cfg +  * Test avec yolov3-tiny.cfg 
-  * yolov3_5l.cfg +  * Test avec yolov3_5l.cfg 
-  * yolov3-tiny_3l.cfg +  * Test avec yolov3-tiny_3l.cfg 
-  * dans shot_xxx.txt de l'image shot_xxx.png: non de l'objet au lieu du numéro de l'objet !+  * Grosse erreur perso: dans shot_xxx.txt de l'image shot_xxx.png: non de l'objet au lieu du numéro de l'objet !
   * fond noir   * fond noir
   * fond noir remplacé par un nuage gris   * fond noir remplacé par un nuage gris
   * nuage gris remplacé par une video de ciel !   * nuage gris remplacé par une video de ciel !
-  * Message dans le terminal: "Processus arrêté." Pas assez de RAM sur le PC de calcul ! 4 Go insuffisant pour des images > 416x416 ! La swap n'est pas utilisée ! Achat de DDR3 1600 mHz 16 Go. +  * Message dans le terminal: "Processus arrêté." Achat de DDR3 1600 mHz 16 Go pour remplacer les 4 Go existants
-  * Diminution des supperpositions avec size de 0.6 à 0.9 +  * Diminution des superpositions avec size de 0.6 à 0.9 
-  * Images avec minuscules seules et images avec majuscules seules +  * Images avec minuscules seules et images avec majuscules seules pour diminuer le nombre de lettres dans l'image et donc les superpositions. 
-  * Reprise des 400 images des lettres pour les cadrer serré (20 heures de boulot) !+  * Reprise des 400 images des lettres pour les cadrer serrées (20 heures de boulot) !
   * Ne pas déclarer des objets qui ne sont jamais dans les images !   * Ne pas déclarer des objets qui ne sont jamais dans les images !
 +
 +===Erreur de segmentation avec yolov3-tiny.cfg===
 +**yolov3-tiny** va plus vite en test mais fini toujours par une erreur de segmentation après quelques images.
  
 ===RAM et SWAP=== ===RAM et SWAP===
Ligne 247: Ligne 251:
   * 5 jours * 24 * 0.2 kW = 24 kwh à 0.17 € le kWh soit 4 €   * 5 jours * 24 * 0.2 kW = 24 kwh à 0.17 € le kWh soit 4 €
  
-Questions: +====Comment aller plus vite ?====
   * **Quel serait le coût sur un Pentaflops  ?**   * **Quel serait le coût sur un Pentaflops  ?**
   * **Et si La Labomedia achète un Pentaflops ?**   * **Et si La Labomedia achète un Pentaflops ?**
  
-=====A faire=====+===Ressources==
 +Je cite: **[[https://timdettmers.com/2019/04/03/which-gpu-for-deep-learning/|Which GPU(s) to Get for Deep Learning]]**: 
 + 
 +**La meilleure GPU: RTX 2070** 
 +  * GPUs à éviter:  
 +    * Toutes les Tesla 
 +    * Toutes les Quadro 
 +    * Toutes les Founders Edition card 
 +    * Titan RTX, Titan V, Titan XP 
 +  * Bon Coût Efficacité mais chère: RTX 2070 
 +  * Cost-efficient and pas chère:  RTX 2060, **GTX 1060** 
 +  * Je n'ai pas beaucoup d'argent: **GTX 1060** 
 +  * Je suis très pauvre: GTX 1050 Ti (4GB). Alternative: CPU (pour premier test simple, fait avec [[l_intelligence_du_semaphore|L'intelligence du sémaphore]]). 
 +  * Je fais du[[https://fr.wikipedia.org/wiki/Kaggle|Kaggle]]: RTX 2070. Ou si vous êtes pauvre GTX 1060 (6GB) ou GTX Titan (Pascal) d'occasion pour prototypage et AWS (Amazon Web Services) pour training final. Les services en ligne sont chers ! 
 +  * Je suis un chercheur compétitif en vision par ordinateur: GTX 2080 Ti avec un kit Water Cooling. Pour les gros réseaux de neurones RTX Titans (2200€ avec l'OFFRE SPÉCIALE ÉDUCATION! sinon [[https://www.ldlc.com/fiche/PB00264879.html|PNY Quadro RTX 6000 5500 € avec 24 Go de DDR6]]). Et n'hésitez pas à investir dans 2 cartes soit un PC à 15000€. 
 +  * Je suis un chercheur en Programmation neuro-linguistique: RTX 2080 Ti en 16-bit. 
 +  * Je veux construire une ferme de GPU: c'est très compliqué. 
 +  * Je débute sérieusement en apprentissage automatique: Commencez avec une RTX 2070. Montez en gamme après 6/9 mois, et voyez grand au bout de 2 ans. 
 +  * Je veux essayer, mais pas sérieusement: GTX 1050 Ti (4 ou 2GB). Et utiliser votre vieil ordinateur! 
 + 
 +===Bilan=== 
 +**Je suis un chercheur compétitif, près de mes sous, pauvre, passionné par l'apprentissage automatique: GTX 1060 (6GB) en fin de série à 200 € + 35 € de RAM** dans un ordinateur d'emprunt ! 
 + 
 + 
 +=====Idées pour approfondir le sujet !=====
   * Repasser à un fond noir   * Repasser à un fond noir
   * Modifier le flou   * Modifier le flou
 +  * Aggrandir les images avec une RTX 2070
 ===== Test ===== ===== Test =====
 +====Test simple sur une image====
   ./darknet detector test data/obj.data data/yolov3.cfg data/backup/yolov3_3000.weights shot_0.jpg   ./darknet detector test data/obj.data data/yolov3.cfg data/backup/yolov3_3000.weights shot_0.jpg
 +====Test sur le jeu d'image de json_to_image====
 +Et le script show_letters.py. Il faut copier les fichiers:
 +  * darknet.py
 +  * libdarknet.so
 +des sources compilées de darknet dans le dossier darknet de letters.
 +
 +Créer les images de json_to_image avec l'option 5 du jeu letters. Définir le fichier json à convertir en images en définissant json_to_image dans letters.ini
 +
 +Il n'y a que 10 canaux midi au maximum possibles.
  
 =====Morale du jour===== =====Morale du jour=====
darknet_letters.txt · Dernière modification : 2020/12/27 15:11 de serge