使用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文件删掉即可。

04-30 12:06