tensorflow object detection 从现有检查点微调模型

tensorflow object detection Fine-tuning a model from an existing checkpoint

我正在尝试从现有检查点训练模型,遵循这些 instructions.

我有 configured the Object Detection Training Pipeline using the faster_rcnn_resnet101_voc07.config 配置。

在检查点部分我设置了预训练模型的检查点文件所在的目录faster_rcnn_resnet101_coco.tar.gz

根据这个 issue fine_tune_checkpoint 可以是包含三个文件的目录的路径:(.data-00000-of- 00001, .index, .meta).

所以我将路径设置为目录“/home/docs/car_dataset/models/model/train

gradient_clipping_by_norm: 10.0
  fine_tune_checkpoint: "/home/docs/car_dataset/models/model/train"
  from_detection_checkpoint: true
  num_steps: 800000
  data_augmentation_options {
    random_horizontal_flip {
    }
  }

但是当我执行训练脚本时:

python object_detection/train.py     --logtostderr\
--pipeline_config_path=/home/docs/car_dataset/models/model/faster_rcnn_resnet101_voc07.config\
--train_dir=/home/docs/car_dataset/models/model/train\
--num_gpus=2

我收到错误:

tensorflow.python.framework.errors_impl.DataLossError: Unable to open table file /home/docs/car_dataset/models/model/train: Failed precondition: /home/docs/car_dataset/models/model/train: perhaps your file is in a different file format and you need to use a different restore operator?

我也试过设置目录中每个文件的路径

fine_tune_checkpoint: "/home/docs/car_dataset/models/model/train/model.ckpt.meta"

但我收到错误消息:

tensorflow.python.framework.errors_impl.DataLossError: Unable to open table file /home/docs/car_dataset/models/model/train/model.ckpt.meta: Data loss: not an sstable (bad magic number): perhaps your file is in a different file format and you need to use a different restore operator?

在具有以下三个文件的管道配置中定义预训练模型的正确方法是什么:(.data-00000-of-00001, .index, .meta)。

Tensorflow 版本:1.2.1

您需要做的是指定没有“.meta”、“.index”和“.data-00000-of-00001”扩展名的整个路径。在您的情况下,这看起来是: “/home/docs/car_dataset/models/model/train/model.ckpt”(您会注意到它比目录更具体)。

按照以下方式设置路径对我有用, ~/faster_rcnn_inception_resnet_v2_640x640/checkpoint/ckpt-0

ckpt-0 是不带 .index 扩展名的索引文件的名称