我们使用TensorFlow进行模型的训练,训练好的模型需要保存,预测阶段我们需要将模型进行加载还原使用,这就涉及TensorFlow模型的保存与恢复加载。
总结一下Tensorflow常用的模型保存方式。
保存checkpoint模型文件(.ckpt)
首先,TensorFlow提供了一个非常方便的api,tf.train.Saver()来保存和还原一个机器学习模型。
旧版保存单个模型文件的方式,大同小异,可以看看。
.ckpt文件是旧版本的输出saver.save(sess),相当于你的.ckpt-data(见下文)
“checkpoint”文件仅用于告知某些TF函数,这是最新的检查点文件。
新版保存为:
.ckpt.meta
.ckpt.index
.ckpt.data
.ckpt-meta 包含元图,即计算图的结构,没有变量的值(基本上你可以在tensorboard / graph中看到)。
.ckpt-data包含所有变量的值,没有结构。要在python中恢复模型,您通常会使用元数据和数据文件(但您也可以使用该.pb文件): saver = tf.train.import_meta_graph(path_to_ckpt_meta) saver.restore(sess, path_to_ckpt_data)
我不确切地知道.ckpt-index,我想这是内部需要的某种索引来正确映射前两个文件。
该.pb文件可以保存您的整个图表(元+数据)。要在c ++中加载和使用(但不训练)图形,您通常会使用它来创建freeze_graph,它会.pb从元数据和数据创建文件。要