什么是TensorFlow检查点元文件?

Cla*_*ash 24 tensorflow

保存检查点时,TensorFlow经常保存元文件:my_model.ckpt.meta.在该文件中,即使我们删除它也可以恢复模型,如果我们在没有元文件的情况下恢复模型,我们会失去什么样的信息?

mrr*_*rry 35

该文件包含一个序列化MetaGraphDef协议缓冲区.它MetaGraphDef被设计为序列化格式,包括恢复训练或推理过程所需的所有信息(包括GraphDef描述数据流的所有信息,以及描述变量,输入管道和其他相关信息的附加注释).例如,MetaGraphDef所使用的TensorFlow服务开始根据您的训练模型的推论服务.我们正在研究可以MetaGraphDef用于培训的其他工具.

假设您仍然拥有模型的Python代码,则无需MetaGraphDef还原模型,因为您可以MetaGraphDef通过重新执行构建模型的Python代码来重构所有信息.要从检查点还原,您只需要包含经过训练的权重的检查点文件,这些权限会定期写入同一目录.

  • 有没有办法用C++ api加载这些?我在使用C++执行图表时遇到了麻烦,因为变量没有使用常规的GraphDef原型进行初始化. (4认同)
  • @Chandra:检查点格式在TensorFlow 0.12中已更改.检查点现在包含多个文件.如果你想使用旧的(效率较低)格式,你可以创建你的保护程序`tf.train.Saver(...,write_veresion = tf.train.SaverDef.V1)`. (4认同)
  • 该`"检查点"`文件包含序列`CheckpointState`协议缓冲区,其中包含指向最近的模型的检查点.每个检查点被保存时将其改写,给其中存储了关于向上的最新检查点信息的单一位置. (3认同)