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)