def evaluate(model, testloader): model.eval() # loss top1 = AverageMeter() top5 = AverageMeter() for _, (inputs, targets) in enumerate(testloader): # print(batch_idx) targets = Variable(targets).cuda() inputs = Variable(inputs).cuda() logits, _, _ = model(inputs) prec1, prec5 = Helper.accuracy(logits, targets, topk=(1, 5)) top1.update(prec1.item(), inputs.size(0)) top5.update(prec5.item(), inputs.size(0)) sys.stdout.write('Acc@1: %.3f Acc@5: %.3f' % (top1.avg, top5.avg))
def evaluate_fgan_loss(inet, fnet, dataloader, nactors): print('Evaluate Fusion Network') inet.eval() fnet.eval() top1 = AverageMeter() top5 = AverageMeter() for batch_idx, (inputs, targets) in enumerate(dataloader): z_missed, z_missed_g, target_missed, _ = batch_process( inet, fnet, inputs, targets, nactors) out_missed_g = inet.module.classifier(z_missed_g) prec1, prec5 = Helper.accuracy(out_missed_g, target_missed, topk=(1, 5)) top1.update(prec1.item(), target_missed.size(0)) top5.update(prec5.item(), target_missed.size(0)) del z_missed, z_missed_g, target_missed, _ return top1.avg, top5.avg