in src/evaluator.py [0:0]
def eval_classif(self, data_type, scores, data_loader):
"""
Evaluate classification.
"""
params = self.params
self.model.eval()
# stats
accuracies = []
# memories
topk = [1, 5, 10, 20, 50, 100, 200, 500]
topk = [k for k in topk if k <= params.num_classes]
for images, targets in data_loader:
images = images.cuda().half() if params.fp16 else images.cuda()
if self.ftmodel is not None:
images = self.ftmodel(images)
output = self.model(images)
accuracies.append(accuracy(output.cpu(), targets, topk=tuple(topk)))
# accuracy
for i_k, k in enumerate(topk):
scores['top%d_acc' % k] = np.mean([x[i_k] for x in accuracies])