epoch=epoch, model=model, loss_fn=loss, optimizer=optimizer, dataloader=dataloader, triple_generation=triple_generation, geometric_model=args.geometric_model, use_cuda=args.cuda, log_interval=100, vis=vis) # model.eval() model.ThetaRegression.eval() results, val_time[epoch - 1] = test_fn(model=model, metric='pck', batch_size=args.batch_size, dataset=dataset_val, dataloader=dataloader_val, do_aff=do_aff, do_tps=do_tps, args=args) if do_aff: val_pck[epoch - 1] = np.mean(results['aff']['pck']) elif do_tps: val_pck[epoch - 1] = np.mean(results['tps']['pck']) train_lr[epoch - 1] = optimizer.param_groups[0]['lr'] # Visualization if epoch % 5 == 0 or epoch == 1: with torch.no_grad(): results_watch, theta_watch, theta_watch_inver, _ = test_watch(
args.start_epoch = GM_checkpoint['epoch'] best_val_pck = GM_checkpoint['best_val_pck'] train_loss = GM_checkpoint['train_loss'] val_pck = GM_checkpoint['val_pck'] train_time = GM_checkpoint['train_time'] val_time = GM_checkpoint['val_time'] model.FeatureExtraction.eval() # Test pre-trained model before training model.ThetaRegression.eval() model.ThetaRegression2.eval() with torch.no_grad(): test_fn(model=model, metric='pck', batch_size=args.batch_size, dataset=dataset_val, dataloader=dataloader_val, dual=True, args=args) results_watch, theta_watch, thetai_watch, _ = test_watch( model=model, metric='pck', batch_size=1, dataset=dataset_watch, dataloader=dataloader_watch, dual=True, args=args) vis_fn_dual(vis=vis, train_loss=train_loss, val_pck=val_pck, train_lr=train_lr,