Nachdem ich die Dokumente gelesen habe , habe ich ein Modell in gespeichert TensorFlow
. Hier ist mein Demo-Code:
# Create some variables.
v1 = tf.Variable(..., name="v1")
v2 = tf.Variable(..., name="v2")
...
# Add an op to initialize the variables.
init_op = tf.global_variables_initializer()
# Add ops to save and restore all the variables.
saver = tf.train.Saver()
# Later, launch the model, initialize the variables, do some work, save the
# variables to disk.
with tf.Session() as sess:
sess.run(init_op)
# Do some work with the model.
..
# Save the variables to disk.
save_path = saver.save(sess, "/tmp/model.ckpt")
print("Model saved in file: %s" % save_path)
aber danach fand ich 3 Dateien
model.ckpt.data-00000-of-00001
model.ckpt.index
model.ckpt.meta
Und ich kann das Modell nicht wiederherstellen, indem ich die model.ckpt
Datei wiederherstelle , da es keine solche Datei gibt. Hier ist mein Code
with tf.Session() as sess:
# Restore variables from disk.
saver.restore(sess, "/tmp/model.ckpt")
Warum gibt es 3 Dateien?
tensorflow
Ich gehe meinen Weg
quelle
quelle
Antworten:
Versuche dies:
Die TensorFlow-Speichermethode speichert drei Arten von Dateien, da die Diagrammstruktur getrennt von den Variablenwerten gespeichert wird . Das
.meta
Datei beschreibt die gespeicherte Diagrammstruktur. Sie müssen sie daher importieren, bevor Sie den Prüfpunkt wiederherstellen (andernfalls wissen Sie nicht, welchen Variablen die gespeicherten Prüfpunktwerte entsprechen).Alternativ können Sie dies tun:
Auch wenn keine Datei benannt ist
model.ckpt
, verweisen Sie beim Wiederherstellen auf den gespeicherten Prüfpunkt mit diesem Namen. Aus demsaver.py
Quellcode :quelle
00000
und00001
Zahlen bedeuten? invariables.data-?????-of-?????
DateiMetadatei : Beschreibt die gespeicherte Diagrammstruktur, einschließlich GraphDef, SaverDef usw. dann anwenden
tf.train.import_meta_graph('/tmp/model.ckpt.meta')
, wird wiederhergestelltSaver
undGraph
.Indexdatei : Dies ist eine unveränderliche String-String-Tabelle (Tensorflow :: Table :: Table). Jeder Schlüssel ist ein Name eines Tensors und sein Wert ist ein serialisierter BundleEntryProto. Jeder BundleEntryProto beschreibt die Metadaten eines Tensors: Welche der "Daten" -Dateien enthält den Inhalt eines Tensors, den Versatz in diese Datei, die Prüfsumme, einige Hilfsdaten usw.
Datendatei : es ist TensorBundle Sammlung, speichern Sie die Werte aller Variablen.
quelle
Ich stelle trainierte Worteinbettungen von Word2Vec wieder her Tensorflow-Tutorial wieder her.
Falls Sie mehrere Prüfpunkte erstellt haben:
zB aussehen erstellte Dateien sehen so aus
Versuche dies
beim Aufruf von restore_session ():
quelle
Wenn Sie beispielsweise ein CNN mit Ausfall trainiert haben, können Sie Folgendes tun:
quelle