CoolFace
Apppublic

pengsida/NeuralBody

sourceHugging Faceupdated 2y agoView on Hugging Face
1likes
run.py127 linesDownload Raw Back to root
1from lib.config import cfg, args2 3 4def run_dataset():5    from lib.datasets import make_data_loader6    import tqdm7 8    cfg.train.num_workers = 09    data_loader = make_data_loader(cfg, is_train=False)10    for batch in tqdm.tqdm(data_loader):11        pass12 13 14def run_network():15    from lib.networks import make_network16    from lib.datasets import make_data_loader17    from lib.utils.net_utils import load_network18    import tqdm19    import torch20    import time21 22    network = make_network(cfg).cuda()23    load_network(network, cfg.trained_model_dir, epoch=cfg.test.epoch)24    network.eval()25 26    data_loader = make_data_loader(cfg, is_train=False)27    total_time = 028    for batch in tqdm.tqdm(data_loader):29        for k in batch:30            if k != 'meta':31                batch[k] = batch[k].cuda()32        with torch.no_grad():33            torch.cuda.synchronize()34            start = time.time()35            network(batch)36            torch.cuda.synchronize()37            total_time += time.time() - start38    print(total_time / len(data_loader))39 40 41def run_evaluate():42    from lib.datasets import make_data_loader43    from lib.evaluators import make_evaluator44    import tqdm45    import torch46    from lib.networks import make_network47    from lib.utils import net_utils48    from lib.networks.renderer import make_renderer49 50    cfg.perturb = 051 52    network = make_network(cfg).cuda()53    net_utils.load_network(network,54                           cfg.trained_model_dir,55                           resume=cfg.resume,56                           epoch=cfg.test.epoch)57    network.train()58 59    data_loader = make_data_loader(cfg, is_train=False)60    renderer = make_renderer(cfg, network)61    evaluator = make_evaluator(cfg)62    for batch in tqdm.tqdm(data_loader):63        for k in batch:64            if k != 'meta':65                batch[k] = batch[k].cuda()66        with torch.no_grad():67            output = renderer.render(batch)68        evaluator.evaluate(output, batch)69    evaluator.summarize()70 71 72def run_visualize():73    from lib.networks import make_network74    from lib.datasets import make_data_loader75    from lib.utils.net_utils import load_network76    from lib.utils import net_utils77    import tqdm78    import torch79    from lib.visualizers import make_visualizer80    from lib.networks.renderer import make_renderer81 82    cfg.perturb = 083 84    network = make_network(cfg).cuda()85    load_network(network,86                 cfg.trained_model_dir,87                 resume=cfg.resume,88                 epoch=cfg.test.epoch)89    network.train()90 91    data_loader = make_data_loader(cfg, is_train=False)92    renderer = make_renderer(cfg, network)93    visualizer = make_visualizer(cfg)94    for batch in tqdm.tqdm(data_loader):95        for k in batch:96            if k != 'meta':97                batch[k] = batch[k].cuda()98        with torch.no_grad():99            output = renderer.render(batch)100            visualizer.visualize(output, batch)101 102 103def run_light_stage():104    from lib.utils.light_stage import ply_to_occupancy105    ply_to_occupancy.ply_to_occupancy()106    # ply_to_occupancy.create_voxel_off()107 108 109def run_evaluate_nv():110    from lib.datasets import make_data_loader111    from lib.evaluators import make_evaluator112    import tqdm113    from lib.utils import net_utils114 115    data_loader = make_data_loader(cfg, is_train=False)116    evaluator = make_evaluator(cfg)117    for batch in tqdm.tqdm(data_loader):118        for k in batch:119            if k != 'meta':120                batch[k] = batch[k].cuda()121        evaluator.evaluate(batch)122    evaluator.summarize()123 124 125if __name__ == '__main__':126    globals()['run_' + args.type]()127