Nach dem, was ich bisher gesammelt habe, gibt es verschiedene Möglichkeiten, ein TensorFlow-Diagramm in eine Datei zu kopieren und dann in ein anderes Programm zu laden, aber ich konnte keine eindeutigen Beispiele / Informationen zu deren Funktionsweise finden. Was ich bereits weiß, ist Folgendes:
- Speichern Sie die Variablen des Modells mit a in einer Prüfpunktdatei (.ckpt)
tf.train.Saver()
und stellen Sie sie später wieder her ( Quelle ). - Speichern Sie ein Modell in einer .pb-Datei und laden Sie es mit
tf.train.write_graph()
undtf.import_graph_def()
( Quelle ) zurück. - Laden Sie ein Modell aus einer .pb-Datei, trainieren Sie es erneut und speichern Sie es mit Bazel ( Quelle ) in einer neuen .pb-Datei.
- Frieren Sie das Diagramm ein, um das Diagramm und die Gewichte zusammen zu speichern ( Quelle )
- Verwenden Sie
as_graph_def()
diese Option , um das Modell zu speichern und für Gewichte / Variablen Konstanten zuzuordnen ( Quelle ).
Ich konnte jedoch einige Fragen zu diesen verschiedenen Methoden nicht klären:
- Speichern Checkpoint-Dateien nur die trainierten Gewichte eines Modells? Könnten Checkpoint-Dateien in ein neues Programm geladen und zum Ausführen des Modells verwendet werden, oder dienen sie einfach dazu, die Gewichte in einem Modell zu einem bestimmten Zeitpunkt / in einem bestimmten Stadium zu speichern?
- Werden
tf.train.write_graph()
auch die Gewichte / Variablen gespeichert? - Kann Bazel nur zur Umschulung in .pb-Dateien gespeichert oder daraus geladen werden? Gibt es einen einfachen Bazel-Befehl, um ein Diagramm in eine .pb-Datei zu kopieren?
- Kann beim Einfrieren ein eingefrorenes Diagramm mit verwendet werden
tf.import_graph_def()
? - Die Android-Demo für TensorFlow wird im Google Inception-Modell aus einer .pb-Datei geladen. Wenn ich meine eigene .pb-Datei ersetzen wollte, wie würde ich das tun? Muss ich nativen Code / native Methoden ändern?
- Was genau ist im Allgemeinen der Unterschied zwischen all diesen Methoden? Oder allgemeiner, was ist der Unterschied zwischen
as_graph_def()
/.ckpt/.pb?
Kurz gesagt, ich suche nach einer Methode, um sowohl ein Diagramm (wie in den verschiedenen Operationen und dergleichen) als auch seine Gewichte / Variablen in einer Datei zu speichern, die dann zum Laden des Diagramms und der Gewichte in ein anderes Programm verwendet werden kann , zur Verwendung (nicht unbedingt Fortsetzung / Umschulung).
Die Dokumentation zu diesem Thema ist nicht sehr einfach, daher wären Antworten / Informationen sehr willkommen.