首页 > 解决方案 > 用于对象检测的 Tensorboard eval.py IOU

问题描述

我在 tensorflow 对象检测中使用了检测模型 zoo 中的 ssd_mobilenet_v1_coco。我目前正在通过运行来训练模型

python legacy/train.py --logtostderr --train_dir=trainingmobile/ --pipeline_config_path=trainingmobile/pipeline.config

我想通过运行 eval.py 来运行评估作业,以获取 IOU 和 PR 曲线等其他指标,但我不知道该怎么做。我能够运行命令

python legacy/eval.py \
--logtostderr \
--checkpoint_dir= path/to/checkpoint \
--eval_dir= path/to/eval \
--pipeline_config_path= path/to/config

然后我运行了命令

tensorboard --logdir=path/to/eval

张量板仅显示测试图像输出。我如何获得其他指标,如 IOU 和 PR 曲线?

标签: tensorflowobject-detectiontensorboard

解决方案


首先,我强烈建议您结合使用更新的model_main.py脚本进行培训和评估。您可以使用它,如下所示:

python object_detection/model_main.py \
   --pipeline_config_path=path/to/config \
   --model_dir=path/to/train_dir \
   --num_train_steps=NUM_TRAIN_STEPS \
   --num_eval_steps=NUM_EVAL_STEPS \
   --alsologtostderr

它结合了训练和评估,您可以使用

tensorboard -logdir=path/to/train_dir

Tensorboard 不仅会显示训练过程,还会显示您在验证集上的进度。他们使用 COCO 指标作为默认指标!

对于您最初的问题:也许您应该将配置文件中的 eval 设置更改为更大的数字:

eval_config: {
  num_examples: 8000
  # Note: The below line limits the evaluation process to 10 evaluations.
  # Remove the below line to evaluate indefinitely.
  max_evals: 10}

如果您将使用model_main.py脚本,评估次数将由标志设置。

model_main.py很高兴知道:在较新的脚本中禁用了 tnesorflow 的信息输出。您可以通过添加启用它

tf.logging.set_verbosity(tf.logging.INFO)

在导入部分之后。


推荐阅读