0

Ich bekam einen TensorFlow Checkpoint und auch ein exportiertes Modell, aber um ein Modell mit Google ML Cloud zu bedienen, brauche ich eine saved_model.pbtxt Datei. Es scheint, dass ich den Prüfpunkt laden und SavedModelBuilder verwenden muss, aber SavedModelBuilder möchte ein Wörterbuch der Namen der Eingangs- und Ausgangsknoten.Wie erstellt man ein SavedModel von einem TensorFlow Checkpoint oder Modell?

Meine Frage ist, gibt es den Checkpoint oder das exportierte Modell (siehe unten), wie kann ich die Namen der Knoten finden, die benötigt werden, um die pbtxt Datei zu generieren, die ich über ML Cloud Service von Google diene?

checkpoint 
export.data-00000-of-00001 
export.index 
export.meta 
options.json 

Antwort

1

Die export.meta sollte ein MetaGraphDef proto sein. Also sollten Sie in der Lage sein, das Proto zu analysieren, um die graph zu erhalten. Sie können dann die Knoten durchsuchen, um den Knoten von Interesse zu finden.

Etwas wie:

import argparse 
from tensorflow.core.protobuf import meta_graph_pb2 
import logging 

if __name__ == "__main__": 
    parser = argparse.ArgumentParser(
     description='Argument parser.') 
    parser.add_argument('--path', 
         required=True, 
         help='The path to the metadata graph file.') 
    args = parser.parse_args()      
    with open(args.path, 'r') as hf: 
    graph = meta_graph_pb2.MetaGraphDef.FromString(hf.read()) 
    print "graph: \n{0}".format(graph) 

Ich glaube, Sie auch in der Lage sein sollte, die Datei und TensorBoard enthält, machen Sie die Grafik auf das Verzeichnis zeigen TensorBoard und verwenden Sie die Namen der Eingabe/Ausgabe-Knoten zu identifizieren.

+0

Danke dafür, das war unglaublich hilfreich! Nur noch eine Frage, vergib mir meine Unwissenheit, aber wie interpretiere ich diese Datei? Sind die Ein- und Ausgaben des gesamten Graphen an einem bestimmten Ort oder gibt es eine Dokumentation, die Details zur Formatierung liefert? – blueether

+0

So haben Sie normalerweise Zugriff auf den Quellcode und Sie können sich den Code ansehen, um zu sehen, welche Namen den Eingängen/Ausgängen zugewiesen werden. Wenn Sie die Ein-/Ausgänge von export.meta identifizieren möchten, müssen Sie etwas arbeiten. Ich denke, TensorBoard ermöglicht es Ihnen, den Graphen zu visualisieren. An diesem Punkt können Sie die Ein-/Ausgänge visuell identifizieren und die Namen abrufen. Es könnte irgendwo in der TF-Codebasis zusätzliche Werkzeuge geben. –

Verwandte Themen