发现自己的文章总是收藏比赞多,给个小心心,让作者更好的写下去呗~
背景
因为工作的原因,需要把export出来的模型还原成checkpoint,然后去做predict测试集,之前一直对模型的保存原理有点模糊,所以就趁此机会好好调研了一下。
调研结果
- 官网说的很明白,不用看其他资料
Training checkpoints
The phrase "Saving a TensorFlow model" typically means one of two things:
Checkpoints, OR
SavedModel.
Checkpoints
- 保存全部的模型参数包括网络的和优化器的
- 文件保存形式:
ls ./tf_ckpts
checkpoint
ckpt-8.data-00000-of-00002
ckpt-8.data-00001-of-00002
ckpt-8.index
ckpt-9.data-00000-of-00002
ckpt-9.data-00001-of-00002
ckpt-9.index
ckpt-10.data-00000-of-00002
ckpt-10.data-00001-of-00002
ckpt-10.index
SavedModel
- 不仅保存模型参数,还有模型计算过程
- 可以直接部署到服务器,不需要依赖原始代码
- 文件保存形式:
ls {mobilenet_save_path}
assets #模型依赖的外部文件,比如vocab
saved_model.pb #模型的网络结构,可以接受tensor输入,计算完后输出tensor
variables #模型的参数
ls {mobilenet_save_path}/variables
variables.data-00000-of-00002
variables.data-00001-of-00002
variables.index
SaveModel转成Ckeckpoint
- 只需要将variables里的文件,改成ckpt-X.*的形式即可
- 模型指定加载这个ckpt