2017-08-17 3 views
1

J'utilise ssd_mobilenets dans l'API de détection d'objet pour former mon propre modèle et obtenir des fichiers .ckpt. Cela fonctionne bien sur mon ordinateur, mais maintenant je veux utiliser le modèle sur mon téléphone. Donc, j'ai besoin de le convertir en fichier .pb. Je ne sais pas comment le faire, quelqu'un peut-il m'aider? Par ailleurs, le graphique de ssd_mobilenets est complexe, je ne peux pas trouver quelle est la sortie du modèle. Quelqu'un connaît-il le nom de la sortie?comment convertir un fichier .ckpt en .pb

Répondre

0
  • Ceci est la cellule 4ème code object_detection_tutorial.ipynb dans ce lien - https://github.com/tensorflow/models/blob/master/research/object_detection/object_detection_tutorial.ipynb

    # What model to download. 
    MODEL_NAME = 'ssd_mobilenet_v1_coco_2017_11_17' 
    MODEL_FILE = MODEL_NAME + '.tar.gz' 
    DOWNLOAD_BASE = 'http://download.tensorflow.org/models/object_detection/' 
    
    # Path to frozen detection graph. This is the actual model that is used for the object detection. 
    PATH_TO_CKPT = MODEL_NAME + '/frozen_inference_graph.pb' 
    
    # List of the strings that is used to add correct label for each box. 
    PATH_TO_LABELS = os.path.join('data', 'mscoco_label_map.pbtxt') 
    
    NUM_CLASSES = 90 
    
  • Maintenant, la cellule indique clairement le nom du fichier .pb qui est /frozen_inference_graph.pb

  • Alors vous avez déjà .pb fichier pourquoi voulez-vous convertir ??
  • Quoi qu'il en soit vous pouvez vous référer thsi lien pour geler le graphique: https://github.com/jayshah19949596/Tensorboard-Visualization-Freezing-Graph
  • vous devez utiliser la fonction tensorflow.python.tools.freeze_graph() pour convertir votre fichier .ckpt-.pb fichier
  • La ligne de code ci-dessous montre comment vous le faites

    freeze_graph.freeze_graph(input_graph_path, 
              input_saver_def_path, 
              input_binary, 
              input_checkpoint_path, 
              output_node_names, 
              restore_op_name, 
              filename_tensor_name, 
              output_graph_path, 
              clear_devices, 
              initializer_nodes) 
    
    • input_graph_path: est le chemin vers le fichier .pb où vous allez écrire votre graphique et ce fichier .pb n'est pas gelé. vous utiliserez tf.train.write_graph() pour écrire le graphique
    • input_saver_def_path: vous pouvez garder une chaîne vide
    • input_binary: il est une valeur booléenne garder false pour que le fichier genertaed n'est pas binaire et lisible
    • input_checkpoint_path: chemin à la .ckpt file
    • output_graph_path: chemin où vous voulez vous écrire dans le fichier pb
    • de clear_devices: valeur booléenne ... garder Faux
    • output_node_names: noms de noeud tenseur explicites que vous voulez sav e
    • restore_op_name: valeur de chaîne qui devrait être "enregistrer/restore_all"
    • filename_tensor_name = "save/Const: 0"
    • initializer_nodes = ""