import torch | |
def accuracy(output, target, topk=(1,)): | |
"""Computes the precision@k for the specified values of k | |
output: (#items, #classes) | |
target: int, | |
""" | |
maxk = max(topk) | |
num_items = output.size(0) | |
_, pred = output.topk(maxk, 1, True, True) | |
pred = pred.t() | |
correct = pred.eq(target) | |
res = [] | |
for k in topk: | |
correct_k = correct[:k].view(-1).float().sum(0) | |
res.append(correct_k.mul_(100.0 / num_items)) | |
return res | |