autodl-projects/xautodl/utils/evaluation_utils.py

19 lines
555 B
Python
Raw Normal View History

2019-01-31 15:27:38 +01:00
import torch
2019-01-31 15:27:38 +01:00
def obtain_accuracy(output, target, topk=(1,)):
"""Computes the precision@k for the specified values of k"""
maxk = max(topk)
batch_size = target.size(0)
2019-01-31 15:27:38 +01:00
_, pred = output.topk(maxk, 1, True, True)
pred = pred.t()
correct = pred.eq(target.view(1, -1).expand_as(pred))
2019-01-31 15:27:38 +01:00
res = []
for k in topk:
2024-07-11 11:48:51 +02:00
# correct_k = correct[:k].view(-1).float().sum(0, keepdim=True)
correct_k = correct[:k].reshape(-1).float().sum(0, keepdim=True)
res.append(correct_k.mul_(100.0 / batch_size))
return res