【问题标题】:Understanding Tensorflow Object Detection API Evaluation metrics了解 TensorFlow 对象检测 API 评估指标
【发布时间】:2020-08-23 16:31:43
【问题描述】:
我使用 tensorflow 提供的对象检测 API 训练了一个模型,但找不到很多关于所创建模型的评估过程的资源。
使用 eval.py 脚本时,我在屏幕上看到了一些结果,但我对此有些怀疑:
checkpoint_dir 中存储的检查点中,结果对应于哪个检查点?
在某些情况下,我得到的值为 -1.00。我该如何解释?
提供的 eval.py 和 model_main.py 脚本有什么区别?
任何与对象检测 api 的评估和推理相关的资源,您可以参考我吗?
【问题讨论】:
标签:
python
tensorflow
object-detection
object-detection-api
【解决方案1】:
- checkpoint_dir 中存储的检查点中的哪个检查点执行
结果对应?
在您的train_dir 中,您会找到一个checkpoint 文件,如果您打开它,代码的第一行是您的最后一个检查点,它将用于评估,您可以将第一行更改为您想要的评估检查点
- 在某些情况下,我得到的值为 -1.00。我该如何解释?
当您在指标中获得 -1 时,这意味着它不存在任何符合条件的结果,在您的情况下,这意味着您的数据集没有任何小面积对象,因此如果您将其丢弃,则有这些对象,而您没有检测到它们,它会显示为 0 而不是 -1。
- 小物体:面积
- 中等对象:32^2
- 大型物体:面积 > 96^2
- 提供的 eval.py 和 model_main.py 脚本有什么区别?
eval.py 脚本仅评估模型并返回指标。 model_main.py 将 train 脚本与 eval 相结合,使您可以选择执行以下操作:
- 训练模型
- 评估模型
- 同时训练和评估模型
在后者中,您应该提供验证数据而不是您的测试数据。
- 任何与对象检测 api 的评估和推理相关的资源,您可以参考我吗?
我想你正在寻找这个Jupyter notebook for off-the-shelf inference