Ein Prüfpunkt enthält den Wert von (einigen der) Variablen in einem TensorFlow-Modell. Es wird von einer Saver
erstellt, die entweder bestimmte Variable
s zu speichern gibt, oder standardmäßig alle (nicht lokale) Variablen speichert.
Um einen Prüfpunkt zu verwenden, benötigen Sie einen kompatiblen TensorFlow Graph
, dessen Variable
s die gleichen Namen wie die Variable
s im Prüfpunkt haben. (Wenn Sie nicht über ein kompatibles Graph
haben, können Sie immer noch die Werte in einem Checkpoint in ausgewählte Variable
s gespeichert laden die init_from_checkpoint
Dienstprogramme in contrib verwenden.)
SavedModel
ist viel umfassender: Es enthält eine Reihe von Graph
s (MetaGraph
s, in der Tat speichern Sammlungen und so), sowie einen Checkpoint, der mit diesen Graph
s kompatibel sein soll, und alle Asset-Dateien, die benötigt werden, um das Modell (z. B. Vokabeln) laufen zu lassen. Für jede MetaGraph
enthält es auch eine Reihe von Signaturen. Signaturen definieren (benannte) Eingabe- und Ausgabetensoren.
Das bedeutet, dass nur ein SavedModel gegeben, können Sie Tools (wie tensorflow/serving
, oder das neue saved_model
Befehlszeilenprogramm, das in tools/
kurz angezeigt) schreiben, die die Graphen innerhalb interpretieren oder auszuführen. Alles, was Sie angeben müssen, sind die Daten.
Im Zweifelsfall würde ich immer auf die Seite schreiben SavedModel
, nicht nur ein Prüfpunkt. Dies ermöglicht nicht nur die Verwendung von Tensorflow/Serving (und anderer sauberer Dienstprogramme, die an Zahl zunehmen werden), sondern stellt auch sicher, dass Sie alle notwendigen Informationen zum Ausführen des Modells haben. Nichts ist frustrierender als ein Prüfpunkt, den Sie nicht mehr verwenden können, weil Sie Ihr Modell geändert haben und jetzt mit Prüfpunktdateien nicht kompatibel ist und Sie lediglich einige Vorhersagen zum Vergleich ausführen möchten.
Die meisten Leute verwenden Checkpoints, denke ich, und "tf.saved_model" ist eine neue Funktion, die wir eingeführt haben. Es sollte schöner sein zu verwenden. Es gibt ein ddoc [hier] (https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/saved_model/README.md). – drpng
@drpng Ich würde gerne wissen, was die "besten Praktiken" für den Umgang mit Modell speichern. –