MCPcopy Create free account
hub / github.com/DingXiaoH/RepVGG / validate

Function validate

main.py:286–333  ·  view source on GitHub ↗
(config, data_loader, model)

Source from the content-addressed store, hash-verified

284
285@torch.no_grad()
286def validate(config, data_loader, model):
287 criterion = torch.nn.CrossEntropyLoss()
288 model.eval()
289
290 batch_time = AverageMeter()
291 loss_meter = AverageMeter()
292 acc1_meter = AverageMeter()
293 acc5_meter = AverageMeter()
294
295 end = time.time()
296 for idx, (images, target) in enumerate(data_loader):
297 images = images.cuda(non_blocking=True)
298 target = target.cuda(non_blocking=True)
299
300 # compute output
301 output = model(images)
302
303 # =============================== deepsup part
304 if type(output) is dict:
305 output = output['main']
306
307 # measure accuracy and record loss
308 loss = criterion(output, target)
309 acc1, acc5 = accuracy(output, target, topk=(1, 5))
310
311 acc1 = reduce_tensor(acc1)
312 acc5 = reduce_tensor(acc5)
313 loss = reduce_tensor(loss)
314
315 loss_meter.update(loss.item(), target.size(0))
316 acc1_meter.update(acc1.item(), target.size(0))
317 acc5_meter.update(acc5.item(), target.size(0))
318
319 # measure elapsed time
320 batch_time.update(time.time() - end)
321 end = time.time()
322
323 if idx % config.PRINT_FREQ == 0:
324 memory_used = torch.cuda.max_memory_allocated() / (1024.0 * 1024.0)
325 logger.info(
326 f'Test: [{idx}/{len(data_loader)}]\t'
327 f'Time {batch_time.val:.3f} ({batch_time.avg:.3f})\t'
328 f'Loss {loss_meter.val:.4f} ({loss_meter.avg:.4f})\t'
329 f'Acc@1 {acc1_meter.val:.3f} ({acc1_meter.avg:.3f})\t'
330 f'Acc@5 {acc5_meter.val:.3f} ({acc5_meter.avg:.3f})\t'
331 f'Mem {memory_used:.0f}MB')
332 logger.info(f' * Acc@1 {acc1_meter.avg:.3f} Acc@5 {acc5_meter.avg:.3f}')
333 return acc1_meter.avg, acc5_meter.avg, loss_meter.avg
334
335
336@torch.no_grad()

Callers 1

mainFunction · 0.70

Calls 4

updateMethod · 0.95
AverageMeterClass · 0.90
accuracyFunction · 0.90
reduce_tensorFunction · 0.90

Tested by

no test coverage detected