Computes the precision@k for the specified values of k
(output, target, topk=(1,))
| 85 | |
| 86 | |
| 87 | def accuracy(output, target, topk=(1,)): |
| 88 | """Computes the precision@k for the specified values of k""" |
| 89 | maxk = max(topk) |
| 90 | batch_size = target.size(0) |
| 91 | |
| 92 | _, pred = output.topk(maxk, 1, True, True) |
| 93 | pred = pred.t() |
| 94 | correct = pred.eq(target.reshape(1, -1).expand_as(pred)) |
| 95 | |
| 96 | res = [] |
| 97 | for k in topk: |
| 98 | correct_k = correct[:k].reshape(-1).float().sum(0, keepdim=True) |
| 99 | res.append(correct_k.mul_(100.0 / batch_size)) |
| 100 | return res |
| 101 | |
| 102 | def accuracy_multi(output, target): |
| 103 | pred = (output > 0).float() |