簡體   English   中英

將 COCOeval 總結寫入 tensorboard

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM