Detectron2 进行评估 | 九

坚强是说给别人听的谎言 提交于 2020-08-09 16:00:16

作者|facebookresearch 编译|Flin 来源|Github

评估

评估是一个过程,需要多个输入/输出对并进行汇总。你始终可以直接使用模型,而只是手动解析其输入/输出以执行评估。或者,可以使用DatasetEvaluator 接口在detectron2中实现评估。 接口。

Detectron2包括一些DatasetEvaluator使用标准数据集特定的API(例如COCO,LVIS)来计算指标的工具。你还可以实现自己的DatasetEvaluator,它使用输入/输出对来实现自己的其他一些工作。例如,要计算在验证集上检测到多少个实例:

class Counter(DatasetEvaluator):
  def reset(self):
    self.count = 0
  def process(self, inputs, outputs):
    for output in outputs:
      self.count += len(output["instances"])
  def evaluate(self):
    # 把self.count存起来,或者打印出来,或者返回。
    return {"count": self.count}

一旦有了DatasetEvaluator,就可以使用inference_on_dataset运行它。例如,

val_results = inference_on_dataset(
    model,
    val_data_loader,
    DatasetEvaluators([COCOEvaluator(...), Counter()]))

与使用模型手动运行评估相比,此功能的优势在于你可以使用DatasetEvaluators合并评估器。这样,你可以运行所有评估,而不必多次浏览数据集。

inference_on_dataset功能还为给定的模型和数据集提供准确的速度基准。

原文链接:https://detectron2.readthedocs.io/tutorials/evaluation.html

欢迎关注磐创AI博客站: http://panchuang.net/

sklearn机器学习中文官方文档: http://sklearn123.com/

欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!