Example #1
0
def main():
    from utils.hyp import parse_args
    args = parse_args()

    trainer = Trainer(args)
    evaluator = Evaluator(args)
    for epoch in range(trainer.start_epoch, args.epochs):
        trainer.training(epoch)
        if not args.no_val and epoch % args.validate == (args.validate - 1):
            map, mf1 = evaluator.validation(trainer.model, epoch)
            val_svar_pf = '[mode: val ' +\
                'mAP: %5.4g, ' % map +\
                'mF1: %5.4g]' % mf1
            trainer.saver.save_log(val_svar_pf)
            if args.visdom:
                update_vis_plot(trainer.vis, epoch, [map, mf1],
                                trainer.val_plot, 'append')

        if evaluator.is_best:
            trainer.best_pred = evaluator.new_pred

        if args.is_save:
            # save checkpoint every epoch
            trainer.saver.save_checkpoint({
                'epoch': epoch,
                'state_dict': trainer.model.module.state_dict() \
                    if args.ng > 1 and args.use_multi_gpu else trainer.model.state_dict(),
                'optimizer': trainer.optimizer.state_dict(),
                'best_pred': evaluator.best_pred,
            }, evaluator.is_best)