tensorflow - 用于对象检测的 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 曲线?
解决方案
首先,我强烈建议您结合使用更新的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)
在导入部分之后。
推荐阅读
- python - Accessing one level of a multi-index in Pandas
- leaflet - 传单:绘制带有线条和箭头样式的 .gpx 路径
- java - 计算给定范围内的半素数 [a..b]
- javascript - 无限循环 VueJS API 调用
- c# - strftime 不是可识别的内置函数名称
- apache-spark - 在 spark 中从 s3 读取时处理丢失的数据
- excel - 如果条件满足,则在 Excel 表中添加新行
- sip - sip 类型跟踪中的数据类型
- ruby-on-rails - Rails 根据关系验证列的唯一性
- android - 场景指针