如何从TensorFlow Object Detection API V2导出早期检查点?
当然可行!而且根本不用删除任何检查点或events文件
你遇到的报错是因为exporter_main_v2.py默认会通过目录里的events文件和检查点编号自动寻找最新的检查点,哪怕你删掉了后续的检查点文件,events文件里记录的晚训练事件还是会让脚本误以为存在更新的检查点,从而报错。
解决这个问题的核心是直接指定你要导出的具体检查点,而不是让脚本自动查找。具体操作步骤如下:
- 找到你要导出的检查点文件:比如第3号检查点对应的文件是
model.ckpt-3.data-00000-of-00001、model.ckpt-3.index和model.ckpt-3.meta,它们的共同前缀是model.ckpt-3。 - 使用
--trained_checkpoint_prefix参数替代默认的--trained_checkpoint_dir,直接指定这个前缀路径。
举个实际的命令例子(替换成你自己的路径):
python exporter_main_v2.py \ --input_type image_tensor \ --pipeline_config_path ./my_config/pipeline.config \ --trained_checkpoint_prefix ./training_checkpoints/model.ckpt-3 \ --output_directory ./exported_models/ckpt_3
按照同样的方式,只需要修改--trained_checkpoint_prefix里的编号(改成6或8),以及对应的--output_directory(避免覆盖之前导出的模型),就能轻松导出第6、8号检查点了。
额外提醒
- 确保你指定的检查点的三个文件(data、index、meta)都完整存在,否则导出会失败。
- 完全不需要删除任何原有文件,保留所有检查点和events文件反而方便后续随时导出其他版本。
内容的提问来源于stack exchange,提问作者Joram
相关产品推荐
相关产品推荐

