in utils/evaluator.py [0:0]
def eval_classif(self, scores, data_loader):
"""
Evaluate classification.
"""
params = self.params
self.model.eval()
# stats
losses=[]
accuracies = []
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()
output = self.model(images)
loss = F.cross_entropy(output, targets.cuda(non_blocking=True), reduction='mean')
accuracies.append(accuracy(output.cpu(), targets, topk=tuple(topk)))
losses.append(loss.item())
# loss
scores['valid_loss']=np.mean(losses)
# accuracy
for i_k, k in enumerate(topk):
scores['valid_top%d_acc' % k] = np.mean([x[i_k] for x in accuracies])