Tensorflow:.ckpt文件与.ckpt.meta和.ckpt.index以及.pb文件之间是什么关系
python
tensorflow
7
0

我使用saver=tf.train.Saver()保存了我训练的模型,然后得到了三种文件:

  • .ckpt.meta
  • .ckpt.index
  • .ckpt.data

还有一个文件:

  • 检查站

.ckpt文件是什么连接?

我看到有人只用.ckpt文件保存了模型,但我不知道该怎么做。如何将模型另存为.pb文件?

参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃
  • .ckpt文件是saver.save(sess)的旧版本输出,与您的.ckpt-data等效(请参见下文)

  • “ checkpoint”文件仅在此处告诉一些TF函数,这是最新的checkpoint文件。

  • .ckpt-meta包含.ckpt-meta图,即计算图的结构,没有变量的值(基本上是在张量板/图中可以看到的值)。

  • .ckpt-data包含所有变量的值,没有结构。要在python中还原模型,通常会使用meta和data文件(但也可以使用.pb文件):

     saver = tf.train.import_meta_graph(path_to_ckpt_meta) saver.restore(sess, path_to_ckpt_data) 
  • 我不完全了解.ckpt-index ,我想这是内部需要某种索引才能正确映射之前的两个文件。无论如何,通常并不需要,您可以仅使用.ckpt-meta.ckpt-data来恢复模型。

  • .pb文件可以保存您的整个图形(元+数据)。要在c ++中加载和使用(而不是训练)图形,通常将使用由freeze_graph创建的图形,该图形将根据元数据和数据创建.pb文件。注意(至少在以前的TF版本中,并且对于某些人而言) freeze_graph提供的py函数无法正常工作,因此您必须使用脚本版本。 Tensorflow还提供了一个tf.train.Saver.to_proto()方法,但是我不知道它到底在做什么。

这里有很多有关如何保存和恢复图形的问题。例如, 在此处查看答案,但请注意,两个引用的教程虽然确实很有帮助,但远非完美,而且许多人似乎仍在努力地用c ++导入模型。

编辑 :看起来您现在也可以在c ++中使用.ckpt文件,所以我想您不必再需要.pb文件。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号