Ejemplo n.º 1
0
            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(
Ejemplo n.º 2
0
        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,