如何将tensorflow .meta .data .index转换为.ckpt文件?

时间:2018-08-10 09:07:11

标签: python tensorflow

我们知道,使用int *def_arr(int size) { int* arr = new int[size]; return arr; } 保存检查点时,我们有3个文件,例如:

model.ckpt.data-00000-of-00001

model.ckpt.index

model.ckpt.meta

我检查了更快的tensorflow n,发现它们有一个Evaluation.py脚本,可以帮助评估经过预先训练的模型,但是该脚本仅接受.ckpt文件(因为它们提供了一些经过预先训练的模型以上)。

我已经从他们的预训练模型中进行了一些微调

然后我想知道是否有一种方法可以将所有rcn 、. index和.meta转换为一个单独的.ckpt文件,以便在检查点上运行valuate.py脚本?

(我还注意到,他们在仓库中提供的经过预先训练的模型确实只有1个.data-00000-of-00001文件,当save-checkpoint函数生成3个文件时,它们怎么做?)

2 个答案:

答案 0 :(得分:0)

这些

{ model.ckpt.data-00000-of-00001

model.ckpt.index

model.ckpt.meta }

是更新的检查点格式

同时

{model.ckpt}

是以前的检查点格式

与将Nintendo Switch转换为NES或将3张CD捆绑到单个ROM盒中的概念相同。

答案 1 :(得分:0)

不需要转换,可以使用

保存网络中的变量
saver = tf.train.Saver() 
saver.save(sess, 'path of save/fileName.ckpt')

要恢复网络以供稍后或在另一个脚本中重用,请使用:

saver = tf.train.Saver()
saver.restore(sess, tf.train.latest_checkpoint('path of save/')
sess.run(....) 

要点:

  1. 第一次和以后运行的 sess 必须相同(连贯的结构)。

  2. saver.restore 需要保存文件的文件夹路径,而不是 单个文件路径。