def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() add_context_preserving_config(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup(cfg, args) return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() add_panoptic_deeplab_config(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup(cfg, args) return cfg
def main(_A: argparse.Namespace): # Get the current device as set for current distributed process. # Check `launch` function in `virtex.utils.distributed` module. device = torch.cuda.current_device() # Local process group is needed for detectron2. pg = list(range(dist.get_world_size())) d2.utils.comm._LOCAL_PROCESS_GROUP = torch.distributed.new_group(pg) # Create a config object (this will be immutable) and perform common setup # such as logging and setting up serialization directory. if _A.weight_init == "imagenet": _A.config_override.extend(["MODEL.VISUAL.PRETRAINED", True]) _C = Config(_A.config, _A.config_override) # We use `default_setup` from detectron2 to do some common setup, such as # logging, setting up serialization etc. For more info, look into source. _D2C = build_detectron2_config(_C, _A) default_setup(_D2C, _A) # Prepare weights to pass in instantiation call of trainer. if _A.weight_init in {"virtex", "torchvision"}: if _A.resume: # If resuming training, let detectron2 load weights by providing path. model = None weights = _A.checkpoint_path else: # Load backbone weights from VirTex pretrained checkpoint. model = PretrainingModelFactory.from_config(_C) if _A.weight_init == "virtex": CheckpointManager(model=model).load(_A.checkpoint_path) else: model.visual.cnn.load_state_dict( torch.load(_A.checkpoint_path, map_location="cpu")["state_dict"], strict=False, ) weights = model.visual.detectron2_backbone_state_dict() else: # If random or imagenet init, just load weights after initializing model. model = PretrainingModelFactory.from_config(_C) weights = model.visual.detectron2_backbone_state_dict() # Back up pretrain config and model checkpoint (if provided). _C.dump(os.path.join(_A.serialization_dir, "pretrain_config.yaml")) if _A.weight_init == "virtex" and not _A.resume: torch.save( model.state_dict(), os.path.join(_A.serialization_dir, "pretrain_model.pth"), ) del model trainer = DownstreamTrainer(_D2C, weights) trainer.test() if _A.eval_only else trainer.train()
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() set_global_cfg(cfg) default_setup(cfg, args) return cfg
def setup(args): cfg = get_cfg() add_dataset_category_config(cfg) add_densepose_config(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup(cfg, args) # Setup logger for "densepose" module setup_logger(output=cfg.OUTPUT_DIR, distributed_rank=comm.get_rank(), name="densepose") return cfg
def setup(args): """ V.Bernasconi create COCOart """ keypoint_names = [ "nose", "left_eye", "right_eye", "left_ear", "right_ear", "left_shoulder", "right_shoulder", "left_elbow", "right_elbow", "left_wrist", "right_wrist", "left_hip", "right_hip", "left_knee", "right_knee", "left_ankle", "right_ankle" ] keypoint_flip_map = { 'left_eye': 'right_eye', 'left_ear': 'right_ear', 'left_shoulder': 'right_shoulder', 'left_elbow': 'right_elbow', 'left_wrist': 'right_wrist', 'left_hip': 'right_hip', 'left_knee': 'right_knee', 'left_ankle': 'right_ankle' } register_coco_instances("cocoArt", {}, json_path + "person_keypoints_train2017.json", img_path + "train2017/") cocoArt_metadata = MetadataCatalog.get("cocoArt") cocoArt_dicts = DatasetCatalog.get("cocoArt") register_coco_instances("cocoArtTest", {}, json_path + "person_keypoints_val2017.json", img_path + "val2017/") cocoArtTest_metadata = MetadataCatalog.get("cocoArtTest") cocoArtTest_dicts = DatasetCatalog.get("cocoArtTest") cocoArt_metadata.keypoint_names = keypoint_names cocoArt_metadata.keypoint_flip_map = keypoint_flip_map cocoArtTest_metadata.keypoint_names = keypoint_names cocoArtTest_metadata.keypoint_flip_map = keypoint_flip_map """ Create configs and perform basic setups. """ cfg = get_cfg() cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.DATASETS.TRAIN = ("cocoArt", ) cfg.DATASETS.TEST = ("cocoArtTest", ) cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url( "COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_1x") cfg.TEST.EVAL_PERIOD = 100 #cfg.OUTPUT_DIR = "./output_RCNN_R_50_FPN_1x" cfg.freeze() default_setup(cfg, args) return cfg
def setup(): """ Create configs and perform basic setups. """ cfg = get_cfg() cfg.MODEL.DEVICE = 'cpu' add_vovnet_config(cfg) cfg.merge_from_file('projects/sku110/configs/faster_rcnn_ShuffleNetv2_05_FPNLite_1x.yaml') cfg.SOLVER.IMS_PER_BATCH = 1 cfg.freeze() default_setup(cfg, {}) return cfg
def setup(args): cfg = get_cfg() cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup(cfg, args) setup_logger(output=cfg.OUTPUT_DIR, distributed_rank=comm.get_rank(), name="openlogo") return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() # To turn off defgrid, comment the line underneath add_defgrid_maskhead_config(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup(cfg, args) return cfg
def main(args): cfg = LazyConfig.load(args.config_file) cfg = LazyConfig.apply_overrides(cfg, args.opts) default_setup(cfg, args) if args.eval_only: model = instantiate(cfg.model) model = create_ddp_model(model) DetectionCheckpointer(model).load(cfg.train.init_checkpoint) print(do_test(cfg, model)) else: do_train(args, cfg)
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() cfg.merge_from_file(args.config_file) # 从config file 覆盖配置 cfg.merge_from_list(args.opts) # 从CLI参数 覆盖配置 plain_register_dataset() # 更改配置参数 cfg.freeze() default_setup(cfg, args) return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() add_config(args, cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(switch_extract_mode(args.extract_mode)) cfg.merge_from_list(set_min_max_boxes(args.min_max_boxes)) cfg.freeze() default_setup(cfg, args) return cfg
def setup(): """ Create configs and perform basic setups. """ cfg = get_cfg() cfg.MODEL.DEVICE = 'cpu' add_vovnet_config(cfg) cfg.merge_from_file( 'projects/vovnet_sku110/configs/faster_rcnn_V_19_FPN_1x.yaml') cfg.freeze() default_setup(cfg, {}) return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() add_attribute_config(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.merge_from_list(switch_extract_mode(args.extract_mode)) cfg.freeze() default_setup(cfg, args) return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.OUTPUT_DIR = args.config_file.replace("configs/", "output/")[:-5] cfg.freeze() default_setup(cfg, args) return cfg
def setup(args): cfg = get_cfg() # 默认配置 add_multitask_config(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup(cfg, args) # Setup logger for "multitask" module setup_logger(output=cfg.OUTPUT_DIR, distributed_rank=comm.get_rank(), name="multitask") return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup( cfg, args ) # if you don't like any of the default setup, write your own setup code return cfg
def setup(args): cfg = get_cfg() add_theis_config(cfg) cfg.merge_from_file('./configs/Miro-CAE-reconstruct.yaml') download_kodak() register_kodak() cfg.freeze() default_setup(cfg, args) setup_logger(output=cfg.OUTPUT_DIR, distributed_rank=comm.get_rank(), name="cae") return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() add_config(args, cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.MODE = args.mode cfg.freeze() default_setup(cfg, args) return cfg
def setup(args): """ Create configs and perform basic setups. """ out_dir = args.config_file.split(os.sep)[-1].rsplit('.', 1)[0] cfg = get_cfg() cfg.OUTPUT_DIR = os.path.join('./output', out_dir) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup(cfg, args) return cfg
def main(args): """Main program entry point.""" # Generate detectron2 config from command line arguments. cfg = get_cfg() cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) # The configuration file should not contain any datasets. They are configured # from command line arguments instead. if len(cfg.DATASETS.TRAIN) > 0 or len(cfg.DATASETS.TEST) > 0: logging.error("Please set DATASETS.TRAIN = () and DATASETS.TEST = ().") sys.exit(1) cfg.DATASETS.TRAIN = (TRAIN_SPLIT_NAME, ) cfg.DATASETS.TEST = (VALID_SPLIT_NAME, ) cfg.freeze() default_setup(cfg, args) # Register synthetic sign datasets. if args.image_width is not None or args.image_height is not None: if args.image_width is None or args.image_height is None: logging.error( "Please specify both, image-width and image-height (or none).") sys.exit(1) image_shape = args.image_height, args.image_width else: image_shape = None register_synthetic_signs(args.train_csv, args.label_map, cfg, name=TRAIN_SPLIT_NAME, image_shape=image_shape) if args.valid_csv is not None: register_synthetic_signs(args.valid_csv, args.label_map, cfg, name=VALID_SPLIT_NAME, image_shape=image_shape) # Run training or evaluation. if args.eval_only: model = Trainer.build_model(cfg) DetectionCheckpointer(model, save_dir=cfg.OUTPUT_DIR).resume_or_load( cfg.MODEL.WEIGHTS, resume=args.resume) res = Trainer.test(cfg, model) if comm.is_main_process(): verify_results(cfg, res) return res trainer = Trainer(cfg) trainer.resume_or_load(resume=args.resume) return trainer.train()
def setup(args): cfg = get_cfg() get_sparseplane_cfg_defaults(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup(cfg, args) # Setup logger for "meshrcnn" module setup_logger(output=cfg.OUTPUT_DIR, distributed_rank=comm.get_rank(), name="planercnn") return cfg
def set_ddp_seed(seed=0, outdir=None, CUDNN_BENCHMARK=False): from template_lib.v2.config_cfgnode import TLCfgNode import argparse d2_cfg = TLCfgNode() d2_cfg.SEED = seed d2_cfg.OUTPUT_DIR = outdir d2_cfg.CUDNN_BENCHMARK = CUDNN_BENCHMARK args = argparse.Namespace() default_setup(d2_cfg, args) pass
def setup_pascal_voc(args): cfg = get_cfg() cfg.merge_from_file(model_zoo.get_config_file('PascalVOC-Detection/faster_rcnn_R_50_C4.yaml')) cfg.DATASETS.TEST = ('voc_2007_test_2012_eval',) cfg.MODEL.WEIGHTS = model_zoo.get_checkpoint_url( "PascalVOC-Detection/faster_rcnn_R_50_C4.yaml") # Let training initialize from model zoo cfg.SOLVER.IMS_PER_BATCH = 2 cfg.freeze() default_setup(cfg, args) setup_logger(output=cfg.OUTPUT_DIR, distributed_rank=comm.get_rank(), name="PascalVOCModel") return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() # 添加一些参数cfg.MODEL.ONENET.xxx 用于onenet 的配置 add_onenet_config(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.freeze() default_setup(cfg, args) return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() add_retinaface_config(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg.MODEL.META_ARCHITECTURE = 'RetinaFaceDeploy' cfg.freeze() default_setup(cfg, args) return cfg
def setup(args): cfg = get_cfg() cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) # customize reszied parameters # cfg['INPUT']['MIN_SIZE_TRAIN'] = (20,) # cfg['INPUT']['MAX_SIZE_TRAIN'] = 50 cfg.freeze() default_setup(cfg, args) # Setup logger for "densepose" module setup_logger(output=cfg.OUTPUT_DIR, distributed_rank=comm.get_rank(), name="pathway_parser") return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() add_attribute_config(cfg) cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) # force the final residual block to have dilations 1 cfg.MODEL.RESNETS.RES5_DILATION = 1 cfg.freeze() default_setup(cfg, args) return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() add_detr_config(cfg) cfg.merge_from_file( '../detr/d2/configs/detr_segm_256_6_6_torchvision.yaml') cfg.merge_from_list(args.opts) cfg = setup_dataset(cfg, args.split) cfg.freeze() default_setup(cfg, args) return cfg
def setup(args): """ Create configs and perform basic setups. """ cfg = get_cfg() cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) # self define # cfg.OUTPUT_DIR = os.path.join(cfg.OUTPUT_DIR, cfg.OUTPUT.TRAIN_VERSION + str(datetime.now())) cfg.OUTPUT_DIR = os.path.join(cfg.OUTPUT_DIR, cfg.OUTPUT.TRAIN_VERSION) cfg.freeze() default_setup(cfg, args) return cfg