MCPcopy Create free account
hub / github.com/NVIDIA/semantic-segmentation / validate

Function validate

train.py:536–597  ·  view source on GitHub ↗

Run validation for one epoch :val_loader: data loader for validation :net: the network :criterion: loss fn :optimizer: optimizer :epoch: current epoch :calc_metrics: calculate validation score :dump_assets: dump attention prediction(s) images :dump_all_images: d

(val_loader, net, criterion, optim, epoch,
             calc_metrics=True,
             dump_assets=False,
             dump_all_images=False)

Source from the content-addressed store, hash-verified

534
535
536def validate(val_loader, net, criterion, optim, epoch,
537 calc_metrics=True,
538 dump_assets=False,
539 dump_all_images=False):
540 """
541 Run validation for one epoch
542
543 :val_loader: data loader for validation
544 :net: the network
545 :criterion: loss fn
546 :optimizer: optimizer
547 :epoch: current epoch
548 :calc_metrics: calculate validation score
549 :dump_assets: dump attention prediction(s) images
550 :dump_all_images: dump all images, not just N
551 """
552 dumper = ImageDumper(val_len=len(val_loader),
553 dump_all_images=dump_all_images,
554 dump_assets=dump_assets,
555 dump_for_auto_labelling=args.dump_for_auto_labelling,
556 dump_for_submission=args.dump_for_submission)
557
558 net.eval()
559 val_loss = AverageMeter()
560 iou_acc = 0
561
562 for val_idx, data in enumerate(val_loader):
563 input_images, labels, img_names, _ = data
564 if args.dump_for_auto_labelling or args.dump_for_submission:
565 submit_fn = '{}.png'.format(img_names[0])
566 if val_idx % 20 == 0:
567 logx.msg(f'validating[Iter: {val_idx + 1} / {len(val_loader)}]')
568 if os.path.exists(os.path.join(dumper.save_dir, submit_fn)):
569 continue
570
571 # Run network
572 assets, _iou_acc = \
573 eval_minibatch(data, net, criterion, val_loss, calc_metrics,
574 args, val_idx)
575
576 iou_acc += _iou_acc
577
578 input_images, labels, img_names, _ = data
579
580 dumper.dump({'gt_images': labels,
581 'input_images': input_images,
582 'img_names': img_names,
583 'assets': assets}, val_idx)
584
585 if val_idx > 5 and args.test_mode:
586 break
587
588 if val_idx % 20 == 0:
589 logx.msg(f'validating[Iter: {val_idx + 1} / {len(val_loader)}]')
590
591 was_best = False
592 if calc_metrics:
593 was_best = eval_metrics(iou_acc, args, net, optim, val_loss, epoch)

Callers 1

mainFunction · 0.85

Calls 6

dumpMethod · 0.95
write_summariesMethod · 0.95
ImageDumperClass · 0.90
AverageMeterClass · 0.90
eval_minibatchFunction · 0.90
eval_metricsFunction · 0.90

Tested by

no test coverage detected