[英]Write COCOeval summary to tensorboard
我正在使用 pycocotools 來評估我的 R-CNN model
coco_eval = pycocotools.cocoeval.COCOeval(coco_gt)
我執行所有必要的計算,然后調用
coco_eval.accumulate()
coco_eval.summarize()
這或多或少像這樣打印一個表
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.000
Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.000
Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.001
Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.001
Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.001
Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.005
有什么方法可以將其寫入SummaryWriter
。
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter()
for category, mAP in coco_eval.summary():
writer.add_scalar(category, mAP)
或多或少是這樣的? 我只能找到coco_eval.stats
個值的 coco_eval.stats,但是它們相應類別的名稱在哪里,例如Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ]
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ]
Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ]
?
我假設您使用的是 Torchvision 的助手 function。 因此,如果您正在運行訓練循環,則可以通過調用evaluate
coco_evaluator
返回 coco_evaluator object,然后循環遍歷coco_eval
字典:
for epoch in range(NUM_EPOCHS):
# train_one_epoch here...
# evaluate
coco_evaluator = evaluate(
model,
data_loader,
device
)
for iou_type, coco_eval in coco_evaluator.coco_eval.items():
writer.add_scalar("AP/IoU/0.50-0.95/all/100", coco_eval.stats[0], epoch)
writer.add_scalar("AP/IoU/0.50/all/100", coco_eval.stats[1], epoch)
writer.add_scalar("AP/IoU/0.75/all/100", coco_eval.stats[2], epoch)
writer.add_scalar("AP/IoU/0.50-0.95/small/100", coco_eval.stats[3], epoch)
writer.add_scalar("AP/IoU/0.50-0.95/medium/100", coco_eval.stats[4], epoch)
writer.add_scalar("AP/IoU/0.50-0.95/large/100", coco_eval.stats[5], epoch)
writer.add_scalar("AR/IoU/0.50-0.95/all/1", coco_eval.stats[6], epoch)
writer.add_scalar("AR/IoU/0.50-0.95/all/10", coco_eval.stats[7], epoch)
writer.add_scalar("AR/IoU/0.50-0.95/all/100", coco_eval.stats[8], epoch)
writer.add_scalar("AR/IoU/0.50-0.95/small/100", coco_eval.stats[9], epoch)
writer.add_scalar("AR/IoU/0.50-0.95/medium/100", coco_eval.stats[10], epoch)
writer.add_scalar("AR/IoU/0.50-0.95/large/100", coco_eval.stats[11], epoch)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.