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/15 11:19]
serge [Comment aller plus vite ?]
darknet_letters [2019/09/25 10:43]
serge [Idées pour approfondir le sujet !]
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 
  
 ====Comment aller plus vite ?==== ====Comment aller plus vite ?====
Ligne 257: Ligne 256:
 Je cite: **[[https://​timdettmers.com/​2019/​04/​03/​which-gpu-for-deep-learning/​|Which GPU(s) to Get for Deep Learning]]**:​ Je cite: **[[https://​timdettmers.com/​2019/​04/​03/​which-gpu-for-deep-learning/​|Which GPU(s) to Get for Deep Learning]]**:​
  
-La meilleura ​GPU: RTX 2070+**La meilleure ​GPU: RTX 2070**
   * GPUs à éviter: ​   * GPUs à éviter: ​
     * Toutes les Tesla     * Toutes les Tesla
-    * toutes ​les Quadro +    * Toutes ​les Quadro 
-    * any Founders Edition card+    * Toutes les Founders Edition card
     * Titan RTX, Titan V, Titan XP     * Titan RTX, Titan V, Titan XP
   * Bon Coût Efficacité mais chère: RTX 2070   * Bon Coût Efficacité mais chère: RTX 2070
   * Cost-efficient and pas chère: ​ RTX 2060, **GTX 1060**   * Cost-efficient and pas chère: ​ RTX 2060, **GTX 1060**
   * Je n'ai pas beaucoup d'​argent:​ **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]]); ou Colab+  * 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 Kaggle: RTX 2070. Ou si vous êtes pauvre GTX 1060 (6GB) ou GTX Titan (Pascal) d'​occasion pour prototypage et AWS pour training final. ​Utiliser une AI rapide. +  * 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 ! 
-  * I am a competitive computer ​vision ​or machine translation researcher: GTX 2080 Ti with the blower fan designIf you train very large networks get RTX Titans. +  * Je suis un chercheur compétitif en vision ​par ordinateur: GTX 2080 Ti avec un kit Water CoolingPour 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€
-  * I am an NLP researcher: RTX 2080 Ti use 16-bit. +  * Je suis un chercheur en Programmation neuro-linguistique: RTX 2080 Ti en 16-bit. 
-  * I want to build a GPU clusterThis is really complicated,​ you can get some ideas from my multi-GPU blog post+  * Je veux construire une ferme de GPU: c'est très compliqué
-  * I started deep learning and I am serious about itStart with an RTX 2070. Buy more RTX 2070 after 6-months and you still want to invest more time into deep learning. Depending on what area you choose next (startupKaggle, research, applied deep learning) sell your GPU and buy something more appropriate after about two years+  * Je débute sérieusement en apprentissage automatiqueCommencez avec une RTX 2070. Montez en gamme après ​6/moiset voyez grand au bout de 2 ans
-  * I want to try deep learningbut I am not serious about it: GTX 1050 Ti (4 or 2GB). This often fits into your standard desktop and does not require a new PSU. If it fits, do not buy a new computer!+  * Je veux essayermais pas sérieusement: GTX 1050 Ti (4 ou 2GB). Et utiliser votre vieil ordinateur!
  
 ===Bilan=== ===Bilan===
-**Je suis près de mes sous et pauvre: GTX 1060 (6GB)** ​et pourtant passionné par l'apprentissage automatique ​!+**Je suis un chercheur compétitif, ​près de mes souspauvre, passionné par l'​apprentissage automatique: GTX 1060 (6GB) en fin de série à 200 € + 35 € de RAM** dans un ordinateur d'emprunt ​!
  
  
Ligne 281: Ligne 280:
   * Repasser à un fond noir   * Repasser à un fond noir
   * Modifier le flou   * Modifier le flou
 +  * Aggrandir les images avec une RTX 2070
 +
 +=====Essai 02=====
 +  * fond video
 +  * fluo de 3 à 7
 +  * letters_scale = 1.09
 +  * 30 000
 +
 +=====Essai 03=====
 +  * fond noir
 +  * pas de flou
 +  * taille 416
 +  * 50 000 images
 +  * vérification du nombre de lettres: objectif 2000 par lettres, réel 1948
 +  * changement du json utilisé par créer les shot: minuscules et majuscules séparées et pas de séparation des polices avec des canaux vides.
 +  * yolo_v3.cfg
 +  * letters_scale = 1.01
 +  * plage_x = 4.5
 +  * plage_y = 4.5
 +  * size_min = 0.6
 +  * size_max = 0.9
  
 ===== 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.
  
 +=====Recherche=====
 +https://​github.com/​ryujaehun/​pytorch-gpu-benchmark
 =====Morale du jour===== =====Morale du jour=====
 **Einstein** a dit:  **Einstein** a dit: 
  • darknet_letters.txt
  • Dernière modification: 2019/11/08 09:22
  • par serge