tensorflow模型ckpt转pb以及其遇到的问题
Posted youyou0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tensorflow模型ckpt转pb以及其遇到的问题相关的知识,希望对你有一定的参考价值。
使用tensorflow训练模型,ckpt作为tensorflow训练生成的模型,可以在tensorflow内部使用。但是如果想要永久保存,最好将其导出成pb的形式。
tensorflow已经准备好ckpt转pb的脚本,直接使用tensorflow脚本就可以很方便地将文件类型转换掉。
在github下载tensorflow代码,https://github.com/tensorflow/models/tree/master,其中research/object_detection文件夹里,提供了名为export_inference_graph.py的脚本。
在导出之前,请确保你在训练目录中有以下文件:
model.ckpt-$.data-00000-of-00001,model.ckpt-$.indexmodel.ckpt-$.meta
你可能有几个具有相同格式的文件,但是使用不同的检查点数量。因此,只需选择所需的检查点,并在命令行中进入到research文件夹中执行以下命令:
python object_detection/export_inference_graph.py --input_type image_tensor --pipeline_config_path=path/to/training/ssd_mobilenet_v1_pets.config -- trained_checkpoint_prefix=path/to/training/model.ckpt-xxxxx --output_directory path/to/output/directory
输出将是一个文件,该文件包含一个叫做frozen_inference_graph.pb模型的“冻结(frozen)”版本。
附:
当导出模型后,并进行测试一段时间之后,可能会出现因为checkpoint改变而报错的情况,这时将checkpoint文件删掉即可。
以上是关于tensorflow模型ckpt转pb以及其遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章
tensorflow ckpt模型转saved_model格式并进行模型预测
何时在 Tensorflow 模型保存中使用 .ckpt、.hdf5 和 .pb 文件扩展名?