首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Tensorflow:.ckpt文件和.ckpt.meta、.ckpt.index和.pb文件有什么关系

Tensorflow:.ckpt文件和.ckpt.meta、.ckpt.index和.pb文件有什么关系
EN

Stack Overflow用户
提问于 2017-06-13 16:50:57
回答 1查看 34.8K关注 0票数 28

我使用saver=tf.train.Saver()来保存我训练的模型,我得到了三种类型的文件,命名为:

  • .ckpt.index

  • .ckpt.data

  • .ckpt.meta

和一个名为的文件:

  • checkpoint

.ckpt文件有什么关系?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-13 20:39:33

  • .ckpt文件是saver.save(sess)的旧版本输出,它相当于你的.ckpt-data (见下文)
  • " checkpoint“文件在这里只是告诉一些TF函数哪个是最新的检查点file.
  • .ckpt-meta包含元图,即你的计算图的结构,没有变量的值(基本上你在tensorboard/graph).
  • .ckpt-data中看到的包含所有变量的值,没有结构。要在python中恢复模型,通常会使用元文件和数据文件(但也可以使用.pb文件):

path_to_ckpt_data)

  • I = tf.train.import_meta_graph(path_to_ckpt_meta) saver.restore(sess,saver不知道.ckpt-index的确切含义,我猜是内部需要某种索引来正确映射前面的两个文件。无论如何,这并不是真的需要通常,你可以恢复一个模型,只有.ckpt-meta.ckpt-data.

  • the .pb文件可以保存整个图形(元数据+数据)。要在c++中加载和使用(但不训练)图形,您通常会使用用freeze_graph创建的图形,它从元数据和数据创建.pb文件。请注意,(至少在以前的TF版本中,对于某些人来说) freeze_graph提供的py函数不能正常工作,因此您必须使用脚本版本。Tensorflow还提供了一个tf.train.Saver.to_proto()方法,但我不知道它的确切用途。

这里有很多关于如何保存和恢复图形的问题。例如,请参阅答案here,但请注意,所引用的两个教程虽然非常有用,但远不是完美的,而且许多人似乎仍然难以在c++中导入模型。

编辑:它看起来像you can also use the .ckpt files in c++ now,,所以我猜你不一定再需要.pb文件了。

票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44516609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档