2017-08-21 5 views
0

J'utilise Ubuntu 16.04, avec GPU Geforce 1080, 8 Go de mémoire GPU.Train Tensorflow avec mes propres images avec succès, mais toujours des problèmes

J'ai correctement créé des fichiers d'enregistrement TF, et j'ai formé le modèle avec succès. Cependant j'ai toujours deux problèmes.

Je ne les étapes suivantes et j'ai encore deux problèmes, me dire s'il vous plaît ce que je suis absent: -

J'utilisé VOCdevkit et je correctement créé deux fichiers qui sont: - pascal_train.record et pascal_val.record

Ensuite,

1- A partir de cette link, j'ai utilisé les images de raton laveur, je les ai placés dans le répertoire suivant models/object_detection/VOCdevkit/VOC2012/JPEGImages (après avoir supprimé les images précédentes). Puis, j'ai utilisé l'annotation raton laveur, je les ai placés dans le répertoire suivant models/object_detection/VOCdevkit/VOC2012/Annotation (après avoir supprimé les précédents).

2- J'ai modifié le models/object_detection/data/pascal_label_map.pbxt et moi avons écrit un nom de classe qui est 'raccoon'

3- je ssd_mobilenet_v1_pets.config. Je l'ai modifié, le nombre de classe est une seule et je ne train de rien, je ssd_mobilenet_v1_coco_11_06_2017/model.ckpt

fine_tune_checkpoint: "/home/jesse/abdu-py2/models/model/ssd_mobilenet_v1_coco_11_06_2017/model.ckpt" 

    from_detection_checkpoint: true 

4- A partir de ce link J'arrangerai ma structure de données qui est comme ça: -

  1. models

    1,1 model

    1.1.1 ssd_mobilenet_v1_pets.config 
    
    1.1.2 train 
    
    1.1.3 evaluation 
    
    1.1.4 ssd_mobilenet_v1_coco_11_06_2017/model.ckpt 
    

    1,2 object_detection

    1.2.1 data qui contient (pascal_train.record, pascal_val.record et pascal_label_map.pbtxt)

    1.2.2 VOCdevkit

    1.2.2.1 VOC2012 
    
        1.2.2.1.1 JPEGImages (my own images) 
    
         1.2.2.1.2 Annotations (raccoon annotation) 
         1.2.2.1.3 ImageSets 
         1.2.2.1.3.1 Main (raccoon_train.txt,raccoon_val.txt,raccoon_train_val.txt)  
    

5- Maintenant, Je vais former mon modèle

(abdu-py2) [email protected]:~/abdu-py2/models$ python object_detection/train.py --logtostderr --pipeline_config_path=/home/jesse/abdu-py2/models/model/ssd_mobilenet_v1_pets.config --train_dir=/home/jesse/abdu-py2/models/model/train 

Tout semble bien, je l'ai créé de nombreux fichiers comme checkpoint et events.out.tfevents.1503337171 fichier (et autres) après plusieurs milliers d'étapes d'entraînement.

Cependant, mes deux problèmes sont les suivants: -

1- Sur la base de cette link, je ne peux pas courir l'évaluation eval.py (pour des raisons de mémoire) en même temps avec train.py.

2- J'ai essayé d'utiliser le fichier events.out.tfevents.1503337171 que j'ai créé à partir des étapes d'apprentissage, mais il semble qu'il n'ait pas été créé correctement.Donc, je ne sais pas où je me trompe, je pense que ma structure de données n'est pas correcte, j'ai essayé de l'arranger en fonction de ma compréhension.

Merci à l'avance

Edit: -

En ce qui concerne Q2/

j'ai tout compris comment convertir les fichiers events et model.ckpt fichiers (que je les ai créés à partir de processus de formation) à inference_graph_.pb. Le inference_graph_.pb pourrait être testé plus tard avec object_detection_tutorial.ipynb. Pour mon cas, je l'ai essayé, mais je n'ai pas pu détecter quoi que ce soit puisque je me suis trompé quelque part pendant le processus train.py.

Les étapes suivantes convertir les fichiers formés pour .pb fichiers

(abdu-py2) [email protected]:~/abdu-py2/models$ python object_detection/export_inference_graph.py \ 

--input_type image_tensor \ 

--pipeline_config_path /home/jesse/abdu-py2/models/model/ssd_mobilenet_v1_pets.config \ 

--trained_checkpoint_prefix /home/jesse/abdu-py2/models/model/train/model.ckpt-27688 \ 

--output_directory /home/jesse/abdu-py2/models/model 

Répondre

0

Question 1 - Ceci est juste un problème que vous allez rencontrer à cause de votre matériel. Une fois arrivé au point où vous souhaitez évaluer le modèle, arrêtez simplement votre entraînement et lancez votre commande eval (il semble que vous ayez évalué votre modèle avec succès, vous connaissez donc la commande). Il vous fournira quelques métriques pour le point de contrôle du modèle le plus récent. Vous pouvez parcourir ce processus jusqu'à ce que vous soyez à l'aise avec les performances de votre modèle.

Question 2 - Ces fichiers d'événements sont utilisés comme entrée dans Tensorboard. Les fichiers d'événements sont au format binaire et ne sont donc pas lisibles par l'utilisateur. Démarrez une application Tensorboard pendant que votre modèle s'entraîne et/ou évalue. Pour ce faire, exécutez quelque chose comme ceci:

tensorboard --logdir=train:/home/grasp001/abdu-py2/models/object_detection/train1/train,eval:/home/grasp001/abdu-py2/models/object_detection/train1/eval

Une fois que vous avez Tensorboard en cours d'exécution, utilisez votre navigateur Web pour accéder à localhost:6006 pour vérifier vos paramètres. Vous pouvez également l'utiliser pendant la formation pour surveiller les pertes et autres paramètres pour chaque étape de la formation.

+0

Thx @ ncaadam Q1/J'ai une mémoire GPU 8 Go, devrais-je utiliser un autre GPU, ou il y a un autre moyen d'éviter ce problème. J'ai entraîné le modèle jusqu'à 28 000 pas. Quand j'ai commencé eval.py j'ai eu cette erreur AVERTISSEMENT: root: Les classes suivantes n'ont pas d'exemples de vérité terrain: 0 – Abduoit

+0

J'ai édité la question, S'il vous plaît jeter un oeil, mon être je me trompe quelque part. – Abduoit

+0

Si vous obtenez cet avertissement, cela signifie que votre modèle n'est pas encore bien entraîné. Continuez à vous entrainer aussi longtemps que vous pouvez voir des résultats sur Tensorboard qui commence à arriver assez tôt donc si cela n'arrive pas, votre entraînement n'est toujours pas correct. –