def main(): parser = argparse.ArgumentParser(description="PyTorch Target Pseudo Label Testing") parser.add_argument("-cfg", "--config-file", default="", metavar="FILE", help="path to config file", type=str, ) parser.add_argument( "opts", help="Modify config options using the command-line", default=None, nargs=argparse.REMAINDER, ) args = parser.parse_args() torch.backends.cudnn.benchmark = True cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() save_dir = cfg.OUTPUT_DIR if save_dir: mkdir(save_dir) logger = setup_logger("pseudo_label", save_dir, 0) logger.info(cfg) logger.info("Loaded configuration file {}".format(args.config_file)) logger.info("Running with config:\n{}".format(cfg)) thres_const = get_threshold(cfg) test(cfg, thres_const)
def main(): parser = argparse.ArgumentParser( description="PyTorch Semantic Segmentation Training") parser.add_argument( "-cfg", "--config-file", default="", metavar="FILE", help="path to config file", type=str, ) parser.add_argument("--local_rank", type=int, default=0) parser.add_argument( "--skip-test", dest="skip_test", help="Do not test the final model", action="store_true", ) parser.add_argument( "opts", help="Modify config options using the command-line", default=None, nargs=argparse.REMAINDER, ) args = parser.parse_args() torch.backends.cudnn.benchmark = True num_gpus = int( os.environ["WORLD_SIZE"]) if "WORLD_SIZE" in os.environ else 1 args.distributed = num_gpus > 1 if args.distributed: torch.cuda.set_device(args.local_rank) torch.distributed.init_process_group(backend="nccl", init_method="env://") cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() output_dir = cfg.OUTPUT_DIR if output_dir: mkdir(output_dir) logger = setup_logger("FADA", output_dir, args.local_rank) logger.info("Using {} GPUs".format(num_gpus)) logger.info(args) logger.info("Loaded configuration file {}".format(args.config_file)) with open(args.config_file, "r") as cf: config_str = "\n" + cf.read() logger.info(config_str) logger.info("Running with config:\n{}".format(cfg)) fea, cls = train(cfg, args.local_rank, args.distributed) if not args.skip_test: run_test(cfg, fea, cls, args.local_rank, args.distributed)
def main(): parser = argparse.ArgumentParser( description="PyTorch Semantic Segmentation Testing") parser.add_argument( "-cfg", "--config-file", default="", metavar="FILE", help="path to config file", type=str, ) parser.add_argument('--saveres', action="store_true", help='save the result') parser.add_argument( "opts", help="Modify config options using the command-line", default=None, nargs=argparse.REMAINDER, ) args = parser.parse_args() torch.backends.cudnn.benchmark = True cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() path, model = os.path.split(cfg.resume) save_dir = os.path.join(path, os.path.splitext(model)[0]) if save_dir: mkdir(save_dir) logger = setup_logger("FADA", save_dir, 0) logger.info(cfg) logger.info("Loaded configuration file {}".format(args.config_file)) with open(args.config_file, "r") as cf: config_str = "\n" + cf.read() logger.info(config_str) logger.info("Running with config:\n{}".format(cfg)) if os.path.isdir(cfg.resume): test_all(cfg, args.saveres) else: test(cfg, args.saveres)
def main(): parser = argparse.ArgumentParser( description="PyTorch Semantic Segmentation Training") parser.add_argument( "-cfg", "--config-file", default="", metavar="FILE", help="path to config file", type=str, ) parser.add_argument( "opts", help="Modify config options using the command-line", default=None, nargs=argparse.REMAINDER, ) args = parser.parse_args() torch.backends.cudnn.benchmark = True cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() output_dir = cfg.OUTPUT_DIR if output_dir: mkdir(output_dir) logger = setup_logger("semantic_dist_init", output_dir, 0) logger.info(args) logger.info("Loaded configuration file {}".format(args.config_file)) logger.info("Running with config:\n{}".format(cfg)) semantic_dist_init(cfg)
def main(): parser = argparse.ArgumentParser( description="PyTorch Semantic Segmentation Testing") parser.add_argument( "-cfg", "--config-file", default="", metavar="FILE", help="path to config file", type=str, ) parser.add_argument( "opts", help="Modify config options using the command-line", default=None, nargs=argparse.REMAINDER, ) args = parser.parse_args() torch.backends.cudnn.benchmark = True cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() save_dir = "" logger = setup_logger("TEST", save_dir, 0) logger.info(cfg) logger.info("Loaded configuration file {}".format(args.config_file)) logger.info("Running with config:\n{}".format(cfg)) if os.path.isdir(cfg.resume): test_all(cfg) else: test(cfg)
def main(): parser = argparse.ArgumentParser( description="PyTorch Semantic Segmentation Testing") parser.add_argument( "-cfg", "--config-file", default="", metavar="FILE", help="path to config file", type=str, ) parser.add_argument( "opts", help="Modify config options using the command-line", default=None, nargs=argparse.REMAINDER, ) args = parser.parse_args() torch.backends.cudnn.benchmark = True cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() save_dir = "" logger = setup_logger("TSNE", save_dir, 0) logger.info(cfg) logger.info("Loaded configuration file {}".format(args.config_file)) logger.info("Running with config:\n{}".format(cfg)) logger = logging.getLogger("TSNE.tester") logger.info("Start") device = torch.device(cfg.MODEL.DEVICE) feature_extractor = build_feature_extractor(cfg) feature_extractor.to(device) classifier = build_classifier(cfg) classifier.to(device) if cfg.resume: logger.info("Loading checkpoint from {}".format(cfg.resume)) checkpoint = torch.load(cfg.resume, map_location=torch.device('cpu')) feature_extractor_weights = strip_prefix_if_present( checkpoint['feature_extractor'], 'module.') feature_extractor.load_state_dict(feature_extractor_weights) classifier_weights = strip_prefix_if_present(checkpoint['classifier'], 'module.') classifier.load_state_dict(classifier_weights) feature_extractor.eval() classifier.eval() torch.cuda.empty_cache() dataset_name = cfg.DATASETS.TEST if cfg.OUTPUT_DIR: output_folder = os.path.join(cfg.OUTPUT_DIR, "inference", dataset_name) mkdir(output_folder) test_data = build_dataset(cfg, mode='test', is_source=False) test_loader = torch.utils.data.DataLoader(test_data, batch_size=cfg.TSNE.BATCH_SIZE, shuffle=False, num_workers=4, pin_memory=True, sampler=None) for batch in tqdm(test_loader): x, y, name = batch x = x.cuda(non_blocking=True) y = y.cuda(non_blocking=True).long() pred, feat, outs = inference(feature_extractor, classifier, x, y) filename = name[0] if len( name[0].split("/")) < 2 else name[0].split("/")[1] # draw t-sne B, A, Ht, Wt = outs.size() tSNE_features = outs.permute(0, 2, 3, 1).contiguous().view(B * Ht * Wt, A) tSNE_labels = F.interpolate(y.unsqueeze(0).float(), size=(Ht, Wt), mode='nearest').squeeze(0).long() tSNE_labels = tSNE_labels.contiguous().view(B * Ht * Wt, ) mask = (tSNE_labels != cfg.INPUT.IGNORE_LABEL ) # remove IGNORE_LABEL pixels tSNE_labels = tSNE_labels[mask] tSNE_features = tSNE_features[mask] draw(tSNE_features=tSNE_features, tSNE_labels=tSNE_labels, name=filename, cfg=cfg)