Después de leer los documentos , guardé un modelo TensorFlow, aquí está mi código de demostración:
# 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)
pero después de eso, encontré que hay 3 archivos
model.ckpt.data-00000-of-00001
model.ckpt.index
model.ckpt.meta
Y no puedo restaurar el modelo restaurando el model.ckptarchivo, ya que no existe tal archivo. Aqui esta mi codigo
with tf.Session() as sess:
# Restore variables from disk.
saver.restore(sess, "/tmp/model.ckpt")
Entonces, ¿por qué hay 3 archivos?
tensorflow
GoingMyWay
fuente
fuente

Respuestas:
Prueba esto:
El método de guardado de TensorFlow guarda tres tipos de archivos porque almacena la estructura del gráfico por separado de los valores de las variables . El
.metaarchivo describe la estructura del gráfico guardado, por lo que debe importarlo antes de restaurar el punto de control (de lo contrario, no sabe a qué variables corresponden los valores guardados del punto de control).Alternativamente, puede hacer esto:
Aunque no hay ningún archivo con nombre
model.ckpt, aún se refiere al punto de control guardado por ese nombre al restaurarlo. Delsaver.pycódigo fuente :fuente
00000y los00001números? envariables.data-?????-of-?????archivoarchivo meta : describe la estructura del gráfico guardado, incluye GraphDef, SaverDef, etc. luego aplica
tf.train.import_meta_graph('/tmp/model.ckpt.meta'), restauraráSaveryGraph.archivo de índice : es una tabla inmutable string-string (tensorflow :: table :: Table). Cada clave es un nombre de un tensor y su valor es un BundleEntryProto serializado. Cada BundleEntryProto describe los metadatos de un tensor: cuál de los archivos de "datos" contiene el contenido de un tensor, el desplazamiento en ese archivo, la suma de comprobación, algunos datos auxiliares, etc.
archivo de datos : es la colección TensorBundle, guarda los valores de todas las variables.
fuente
Estoy restaurando incrustaciones de palabras entrenadas del tutorial de Word2Vec tensorflow.
En caso de que haya creado varios puntos de control:
por ejemplo, los archivos creados se ven así
prueba esto
al llamar a restore_session ():
fuente
Si entrenó a una CNN con deserción, por ejemplo, podría hacer esto:
fuente