【发布时间】:2019-10-21 23:05:02
【问题描述】:
我一直在我自己的数据集上使用 Tensorflow 对象检测 API。在训练时,训练损失会在张量板上更新。但我分别需要训练和验证准确度(mAP)。 需要采取哪些步骤来获得这些值?
【问题讨论】:
标签: python object tensorflow detection
我一直在我自己的数据集上使用 Tensorflow 对象检测 API。在训练时,训练损失会在张量板上更新。但我分别需要训练和验证准确度(mAP)。 需要采取哪些步骤来获得这些值?
【问题讨论】:
标签: python object tensorflow detection
如果您使用 keras API,通过tf.keras,您可以在model.fit 函数中添加评估函数作为指标。查看 the official documentation 以获取所有可用指标的列表。
您可能对tf.metrics.average_precision_at_k 感兴趣。如果它不能完全满足您的需求,您还可以实施自定义指标。
【讨论】:
由于您说 mAP 代表平均平均精度,因此您需要在管道配置文件中使用值为“coco_detection_metrics”的 metrics_set。你的文件应该是这样的:
eval_config: {
metrics_set: "coco_detection_metrics"
use_moving_averages: false
}
之后,当您运行 eval_continuously 时,您应该获得验证集上的 mAP。
对于训练集,您需要在运行model_main_tf2.py 脚本时设置eval_on_train_data 参数。
【讨论】:
model_main_tf2.py 脚本表示eval_on_train_data 选项仅在分布式训练中可用。这是否意味着我需要多个 GPU 才能使用该选项?