在使用TensorFlow Object Detection
API进行训练时,我得到的累计评估结果始终为0。以下是我得到的相应详细信息:
Accumulating evaluation results...
DONE (t=1.51s).
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000
为什么会这样?作为TFOD文档,我向模型提供了train.record
和'test.record'文件。但是没有单独提供任何验证或评估数据集或类似的东西,因为我没有找到像这样的要求。是这个原因吗?
此外,还有训练命令:
!python /content/models/research/object_detection/model_main.py \
--pipeline_config_path={pipeline_fname} \
--model_dir={model_dir} \
--alsologtostderr \
--num_train_steps={num_train_steps} \
--num_eval_steps={num_eval_steps}
在这里,我为这些变量设置以下值:
其他信息:
Out of range: End of sequence
的错误,并且可能是由于另一个名为TypeError: 'numpy.float64' object cannot be interpreted as an integer
的错误而发生的。通过降级NumPy版本,修复了这两个问题。编辑:除此之外,我还发现了另一个问题。在测试输出时,测试图像上不会显示任何边界框。
答案 0 :(得分:0)
好的!我发现了这背后的可疑原因。问题可能出在预训练模型上。最初,我使用ssd_mobilenet_v1_coco_2017_11_17
作为预训练模型并得到错误。因此,当我更改模型时,错误消失了。当前,我正在使用ssd_mobilenet_v2_coco_2018_03_29
,它是它的更新版本。以下是详细内容的一部分,希望可以显示现在一切正常:
Accumulating evaluation results...
DONE (t=1.05s).
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.329
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.835
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.111
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.200
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.298
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.392
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.206
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.439
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.441
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.274
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.409
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.502
编辑:如上所述,更改预训练模型后,不显示边界框的问题也自动得到解决。