|
import evaluate |
|
from tqdm import tqdm |
|
model = AutoModelForObjectDetection.from_pretrained("devonho/detr-resnet-50_finetuned_cppe5") |
|
module = evaluate.load("ybelkada/cocoevaluate", coco=test_ds_coco_format.coco) |
|
val_dataloader = torch.utils.data.DataLoader( |
|
test_ds_coco_format, batch_size=8, shuffle=False, num_workers=4, collate_fn=collate_fn |
|
) |
|
with torch.no_grad(): |
|
for idx, batch in enumerate(tqdm(val_dataloader)): |
|
pixel_values = batch["pixel_values"] |
|
pixel_mask = batch["pixel_mask"] |
|
|
|
labels = [ |
|
{k: v for k, v in t.items()} for t in batch["labels"] |
|
] # these are in DETR format, resized + normalized |
|
# forward pass |
|
outputs = model(pixel_values=pixel_values, pixel_mask=pixel_mask) |
|
orig_target_sizes = torch.stack([target["orig_size"] for target in labels], dim=0) |
|
results = im_processor.post_process(outputs, orig_target_sizes) # convert outputs of model to Pascal VOC format (xmin, ymin, xmax, ymax) |
|
module.add(prediction=results, reference=labels) |
|
del batch |
|
|
|
results = module.compute() |
|
print(results) |
|
Accumulating evaluation results |
|
DONE (t=0.08s). |