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.ckpt
archivo, 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
.meta
archivo 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.py
código fuente :fuente
00000
y los00001
nú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áSaver
yGraph
.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