我之前导出了一个RetinaNet模型(最初来自于对象检测动物园),并使用Tensorflow Object Detection API(Tensorflow版本2.4.1)对自定义数据集进行了微调。以下是导出模型文件夹的外观。
当在模型上运行评估时(如下所示),它的mAP@0.5IOU为0.5。 python model_main_tf2.py --model_dir=exported-models/retinanet --pipeline_config_path=exported-models/retinanet/pipeline.config --checkpoint_dir=exported-models/retinanet/checkpoint问题:
由于不幸的情况,我没有模型训练时的训练文件夹。最近我得到了更多的数据,想要将导出的模型作为进一步训练的起点,并在新的训练中设置fine_tune_checkpoint: "exported-models/retinanet/checkpoint/ckpt-0" 在pipeline.config中。
fine_tune_checkpoint: "exported-models/retinanet/checkpoint/ckpt-0"
num_steps: 25000
startup_delay_steps: 0.0
replicas_to_aggregate: 8
max_number_of_boxes: 100
unpad_groundtruth_tensors: false
fine_tune_checkpoint_type: "detection"
use_bfloat16: false
fine_tune_checkpoint_version: V2
然而,当使用
model_main_tf2.py
脚本开始训练时,第一个检查点(在步骤0处)得分很差 - 即使在导出模型运行评估的相同数据集上也是如此。我期望第一个检查点在相同的测试集上具有与导出模型相同的得分。如果这种假设是错误的,那么为什么?