MCPcopy Index your code
hub / github.com/OpenGVLab/InternVL / eval_epoch

Function eval_epoch

classification/main_accelerate.py:261–289  ·  view source on GitHub ↗
(*, config, data_loader, model, accelerator: Accelerator)

Source from the content-addressed store, hash-verified

259
260@torch.no_grad()
261def eval_epoch(*, config, data_loader, model, accelerator: Accelerator):
262 model.eval()
263
264 acc1_meter = AverageMeter()
265 acc5_meter = AverageMeter()
266
267 for idx, (images, target) in enumerate(tqdm(data_loader, disable=accelerator.is_main_process)):
268 output = model(images)
269
270 # convert 22k to 1k to evaluate
271 if output.size(-1) == 21841:
272 convert_file = './meta_data/map22kto1k.txt'
273 with open(convert_file, 'r') as f:
274 convert_list = [int(line) for line in f.readlines()]
275 output = output[:, convert_list]
276
277 acc1, acc5 = accuracy(output, target, topk=(1, 5))
278 acc1 = accelerator.gather(acc1).mean(0)
279 acc5 = accelerator.gather(acc5).mean(0)
280
281 acc1_meter.update(acc1.item(), target.size(0))
282 acc5_meter.update(acc5.item(), target.size(0))
283
284 if (idx + 1) % config.PRINT_FREQ == 0 or idx + 1 == len(data_loader):
285 logger.info(f'Test: [{idx+1}/{len(data_loader)}]\t'
286 f'Acc@1 {acc1_meter.val:.3f} ({acc1_meter.avg:.3f})\t'
287 f'Acc@5 {acc5_meter.val:.3f} ({acc5_meter.avg:.3f})\t'
288 )
289 return acc1_meter.avg
290
291
292def eval(config, accelerator: Accelerator):

Callers 2

evalFunction · 0.70
trainFunction · 0.70

Calls 2

accuracyFunction · 0.85
updateMethod · 0.80

Tested by

no test coverage detected