tensorflow的checkpoint文件的版本

根据官方的说明,checkpoint有两个版本:1和2

在0.12版本tensorflow更新了checkpoint版本,默认情况下写入和读取的checkpoint都是新的V2版本,新版本能够在restore过程中显著降低内存峰值。

两种版本模型保存方式如下:

v1 v2
model.ckpt-66000 model.ckpt-66000.index
model.ckpt-66000.meta model.ckpt-66000.meta
model.ckpt-66000.data-00000-of-00001

更多关于0.xx版本和1.0以上版本的区别请看:https://blog.csdn.net/hfutdog/article/details/79333386

版本1

版本1保存ckpt时,有两个文件model.ckpt-xxx(包含了参数名和参数值)和model.ckpt-xxx.meta(图结构)

要读取该ckpt时,路径按平常写法写

版本2

版本2保存模型时,有三个文件model.ckpt-xxx.data(参数值)、model.ckpt-xxx.index(参数名)、model.ckpt-xxx.meta(图结构)

要读取该ckpt时,路径按只写三个文件的公共部分

保存版本的选择

TF默认保存为v2格式,保存的checkpoint的版本可以在创建saver的时候指定

import tensorflow as tf
from tensorflow.core.protobuf import saver_pb2
# 保存成v1版本
saver = tf.train.Saver(write_version=saver_pb2.SaverDef.V1)
# 保存成v2版本
saver = tf.train.Saver(write_version=saver_pb2.SaverDef.V2)

从ckpt中恢复变量

虽然保存时有差别,但恢复时,两个版本都可以(但须注意不同版本的ckpt的路径书写方式不同)

v1
直接书写完整的ckpt文件的路径

v1
直接书写完整的ckpt文件的路径中的model.ckpt-xxx即可

猜你喜欢

转载自blog.csdn.net/u014061630/article/details/80698843