【发布时间】:2020-06-20 00:16:18
【问题描述】:
在使用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}
在这里,我为这些变量设置了以下值:
- pipeline_fname: 'ssd_mobilenet_v2_coco.config'
- model_dir: '/training' # 只是一个保存模型的示例文件夹
- num_train_steps: 50000
- num_eval_steps: 1
附加信息:
- 使用的预训练模型:'ssd_mobilenet_v1_coco_2017_11_17'
- 批量大小:8
- COLAB 中使用的 Tensorflow-GPU 1.x
- NumPy==1.17.5 已预先安装,因为最新版本正在创建一个名为
Out of range: End of sequence的错误,并且可能是由于另一个名为TypeError: 'numpy.float64' object cannot be interpreted as an integer的错误而发生的。通过降级 NumPy 版本修复了这两个问题。
编辑:除此之外,我还发现了另一个问题。在测试输出时,测试图像上没有显示任何边界框。
【问题讨论】:
标签: tensorflow config object-detection