我使用saver=tf.train.Saver()
来保存我训练的模型,我得到了三种类型的文件,命名为:
的
和一个名为的文件:
与.ckpt文件有什么关系?
我看到有人保存的模型只有.ckpt文件,我不知道怎么做。如何将模型另存为.pb文件?
发布于 2017-06-13 20:39:33
saver.save(sess)
的旧版本输出,它相当于你的.ckpt-data
(见下文).ckpt-meta
包含元图,即你的计算图的结构,没有变量的值(基本上你在tensorboard/graph)..ckpt-data
中看到的包含所有变量的值,没有结构。要在python中恢复模型,通常会使用元文件和数据文件(但也可以使用.pb
文件):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()
方法,但我不知道它的确切用途。这里有很多关于如何保存和恢复图形的问题。例如,请参阅答案here,但请注意,所引用的两个教程虽然非常有用,但远不是完美的,而且许多人似乎仍然难以在c++中导入模型。
编辑:它看起来像you can also use the .ckpt files in c++ now,,所以我猜你不一定再需要.pb文件了。
https://stackoverflow.com/questions/44516609
复制相似问题