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édentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
darknet_letters [2019/09/09 16:46]
serge [A faire]
darknet_letters [2019/09/22 09:57]
serge [Modification de la configuration]
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 41: Ligne 35:
  
 ===Message d'​erreur=== ===Message d'​erreur===
-<​code>​ +Pour éviter ce message: 
-Pour éviter ce message: +  fluidsynth: warning: Failed to set thread to high priority 
-fluidsynth: warning: Failed to set thread to high priority +  fluidsynth: warning: Failed to pin the sample data to RAM; swapping is possible. 
-fluidsynth: warning: Failed to pin the sample data to RAM; swapping is possible.+Editer: 
 +  sudo nano /​etc/​security/​limits.conf
  
-sudo nano /​etc/​security/​limits.conf +Ajouter:
- +
-Ajouter:+
   @audio ​  ​- ​ rtprio ​     90   @audio ​  ​- ​ rtprio ​     90
   @audio ​  ​- ​ memlock ​    ​unlimited   @audio ​  ​- ​ memlock ​    ​unlimited
  
-Le user doit être dans le gropue ​audio! +Le user doit être dans le groupe ​audio!
-</​code>​+
 ====Installation==== ====Installation====
 <code txt> <code txt>
Ligne 74: Ligne 66:
   - Si il y a un bug, corriger dans les scripts, toujours de façon explicite, et envoyer un message à l'​auteur.   - Si il y a un bug, corriger dans les scripts, toujours de façon explicite, et envoyer un message à l'​auteur.
   - Les modifications de configuration se font dans ./​letters/​letters.ini   - Les modifications de configuration se font dans ./​letters/​letters.ini
-Dans ce fichier, définir:+Dans ce fichier, définir ​en particulier:
   * **les chemins de /shot/ et /​shot_jpg/​**   * **les chemins de /shot/ et /​shot_jpg/​**
   * **le nombre d'​images à créer: 20000**   * **le nombre d'​images à créer: 20000**
Ligne 84: Ligne 76:
    
 <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 93:
 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 197:
  
 ===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 223: Ligne 222:
   * Diminution des superpositions 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 pour diminuer le nombre de lettres dans l'​image et donc les superpositions.   * 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 !
  
Ligne 248: Ligne 247:
  
 =====Durée d'un calcul et consommation électrique===== =====Durée d'un calcul et consommation électrique=====
-  * jours * 24 * 0.2 kW = 24 kwh à 0.17 € le kWh soit +  * 10 jours * 24 * 0.2 kW = 48 kwh à 0.17 € le kWh soit 
  
-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 ?**
 +
 +===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 !===== =====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: 2019/12/11 17:15
  • par serge