def setup(args, config): """ Create configs and perform basic setups. """ from detectron2.config import CfgNode # detectron2 default cfg # cfg = get_cfg() cfg = CfgNode() cfg.OUTPUT_DIR = "./output" cfg.SEED = -1 cfg.CUDNN_BENCHMARK = False cfg.DATASETS = CfgNode() cfg.SOLVER = CfgNode() cfg.DATALOADER = CfgNode() cfg.DATALOADER.FILTER_EMPTY_ANNOTATIONS = True cfg.DATALOADER.SAMPLER_TRAIN = "TrainingSampler" cfg.MODEL = CfgNode() cfg.MODEL.KEYPOINT_ON = False cfg.MODEL.LOAD_PROPOSALS = False cfg.MODEL.WEIGHTS = "" # cfg.merge_from_file(args.config_file) cfg.merge_from_list(args.opts) cfg = detection2_utils.D2Utils.cfg_merge_from_easydict(cfg, config) cfg.freeze() default_setup( cfg, args ) # if you don't like any of the default setup, write your own setup code return cfg
def create_cfg(): """ Create configs and perform basic setups. """ from detectron2.config import CfgNode # detectron2 default cfg # cfg = get_cfg() cfg = CfgNode() cfg.OUTPUT_DIR = "./output" cfg.SEED = -1 cfg.CUDNN_BENCHMARK = False cfg.DATASETS = CfgNode() cfg.SOLVER = CfgNode() cfg.DATALOADER = CfgNode() cfg.DATALOADER.FILTER_EMPTY_ANNOTATIONS = True cfg.DATALOADER.SAMPLER_TRAIN = "TrainingSampler" cfg.MODEL = CfgNode() cfg.MODEL.KEYPOINT_ON = False cfg.MODEL.LOAD_PROPOSALS = False cfg.MODEL.WEIGHTS = "" cfg.freeze() return cfg
_C.MODEL.RESNETS.RES2_OUT_CHANNELS = 256 _C.MODEL.RESNETS.STEM_OUT_CHANNELS = 64 # Apply Deformable Convolution in stages # Specify if apply deform_conv on Res2, Res3, Res4, Res5 _C.MODEL.RESNETS.DEFORM_ON_PER_STAGE = [False, False, False, False] # Use True to use modulated deform_conv (DeformableV2, https://arxiv.org/abs/1811.11168); # Use False for DeformableV1. _C.MODEL.RESNETS.DEFORM_MODULATED = False # Number of groups in deformable conv. _C.MODEL.RESNETS.DEFORM_NUM_GROUPS = 1 # ---------------------------------------------------------------------------- # # Solver # ---------------------------------------------------------------------------- # _C.SOLVER = CN() # See detectron2/solver/build.py for LR scheduler options _C.SOLVER.LR_SCHEDULER_NAME = "WarmupMultiStepLR" _C.SOLVER.MAX_ITER = 40000 _C.SOLVER.BASE_LR = 0.001 _C.SOLVER.MOMENTUM = 0.9 _C.SOLVER.WEIGHT_DECAY = 0.0001 # The weight decay that's applied to parameters of normalization layers # (typically the affine transformation) _C.SOLVER.WEIGHT_DECAY_NORM = 0.0
def get_derender_config(dataset_name): _C = CfgNode() _C.DEBUG = False _C.TYPE = "derender" _C.ATTRIBUTES = CfgNode() _C.RESUME = False _C.RESUME_DIR = "" _C.SEED = -1 _C.CUDNN_BENCHMARK = False # ----------------------------------------------------------------------------- # Model # ----------------------------------------------------------------------------- _C.MODEL = CfgNode() # Number of derender visual feature channels _C.MODEL.FEATURE_CHANNELS = 512 # number of hidden layers after backbone _C.MODEL.NUM_MID_LAYERS = 2 # Number of intermediate layer channels _C.MODEL.MID_CHANNELS = 256 _C.INPUT = CfgNode() _C.DATASETS = CfgNode() _C.DATASETS.USE_PREDICTED_BOXES = False _C.DATASETS.BASE_NAME = dataset_name # ----------------------------------------------------------------------------- # DataLoader # ----------------------------------------------------------------------------- _C.DATALOADER = CfgNode() # Number of data loading threads if _C.DEBUG: _C.DATALOADER.NUM_WORKERS = 0 else: _C.DATALOADER.NUM_WORKERS = 6 if _C.DEBUG: _C.DATALOADER.VAL_BATCH_SIZE = 80 else: _C.DATALOADER.VAL_BATCH_SIZE = 160 # ---------------------------------------------------------------------------- # # Solver # ---------------------------------------------------------------------------- # _C.SOLVER = CfgNode() #maximum number of seconds for training _C.SOLVER.MAX_TIME_SECS = 43200 # Print metrics every _ seconds _C.SOLVER.PRINT_METRICS_TIME = 180 #TODO: set back to 180 # write to tensorboard summary every_ secconds _C.SOLVER.TENSORBOARD_SECS = 1 # Checkpoint every _ seconds _C.SOLVER.CHECKPOINT_SECS = 600 # Run validation every _ seconds _C.SOLVER.VALIDATION_SECS = 600 #TODO: change back to 300 _C.SOLVER.VALIDATION_MAX_SECS = 60 _C.SOLVER.BASE_LR = 6.658777172739463e-5 _C.SOLVER.BIAS_LR_FACTOR = 2 _C.SOLVER.OPT_TYPE = "Adam" #options "Adam" "SGD" _C.SOLVER.MOMENTUM = 0.9960477666835778 #found via Bayesian Optimization _C.SOLVER.ADAM_BETA = 0.9999427846237621 _C.SOLVER.WEIGHT_DECAY = 0.0005 _C.SOLVER.WEIGHT_DECAY_BIAS = 0 #Factor of reduction at iteration == el for el in SOLVER.STEPS _C.SOLVER.GAMMA = 0.3 _C.SOLVER.STEPS = (80000, 100000) # _C.SOLVER.STEPS = (3000,5000) _C.SOLVER.WARMUP_FACTOR = 1.0 / 3 _C.SOLVER.WARMUP_ITERS = 500 _C.SOLVER.WARMUP_METHOD = "linear" ######### INTPHYS ############### if _C.DATASETS.BASE_NAME == "intphys": _C.DATASETS.TRAIN = ("intphys_train", ) # _C.DATASETS.TRAIN = ("intphys_val",) _C.DATASETS.TEST = ("intphys_val", ) _C.DATASETS.USE_DEPTH = True _C.DATALOADER.OBJECTS_PER_BATCH = 160 # TODO: get back to 160 _C.ATTRIBUTES.NAME = "intphys" _C.MODEL.ADD_CAMERA = True # Input channels for the model (segmented depth map, depth map) _C.MODEL.IN_CHANNELS = 2 # The size of pooling kernel in the last layer of the resnet34 _C.MODEL.POOLING_KERNEL_SIZE = (8, 8) ####### ADEPT ################# elif _C.DATASETS.BASE_NAME == "adept": _C.DATASETS.TRAIN = ("adept_train", ) # _C.DATASETS.TRAIN = ("adept_val",) _C.DATASETS.TEST = ("adept_val", ) _C.DATASETS.USE_DEPTH = False _C.ATTRIBUTES.NAME = "adept" _C.MODEL.ADD_CAMERA = False if _C.DEBUG: _C.DATALOADER.OBJECTS_PER_BATCH = 20 # TODO: get back to 40 else: _C.DATALOADER.OBJECTS_PER_BATCH = 120 # TODO: get back to 40 # Input channels for the model (segmented depth map, depth map) _C.MODEL.IN_CHANNELS = 12 # The size of pooling kernel in the last layer of the resnet34 _C.MODEL.POOLING_KERNEL_SIZE = (10, 15) elif _C.DATASETS.BASE_NAME == "ai2thor-intphys": _C.DATASETS.TRAIN = ("ai2thor-intphys_train", ) # _C.DATASETS.TRAIN = ("ai2thor-intphys_val",) _C.DATASETS.TEST = ("ai2thor-intphys_val", ) _C.DATASETS.USE_DEPTH = True _C.ATTRIBUTES.NAME = "ai2thor" _C.MODEL.ADD_CAMERA = False if _C.DEBUG: _C.DATALOADER.OBJECTS_PER_BATCH = 20 else: _C.DATALOADER.OBJECTS_PER_BATCH = 120 # Input channels for the model (segmented depth map, depth map) _C.MODEL.IN_CHANNELS = 2 # The size of pooling kernel in the last layer of the resnet34 _C.MODEL.POOLING_KERNEL_SIZE = (8, 16) else: raise NotImplementedError return _C
def get_dynamics_cfg(dataset_base_name): _C = CfgNode() _C.DEBUG = False _C.TYPE = "dynamics" _C.DATASETS = CfgNode() # _C.DATASETS.USE_PREDICTED_ATTRIBUTES = True _C.DATASETS.BASE_NAME = dataset_base_name _C.DATALOADER = CfgNode() _C.DATALOADER.NUM_WORKERS = 4 _C.DATALOADER.BATCH_SIZE = 15 _C.MODEL = CfgNode() _C.MODEL.ARCHITECTURE = "interaction" _C.MODEL.RNN_NUM_LAYERS = 6 _C.MODEL.DROP_OUT = 0.2 _C.MODEL.HIDDEN_SIZE = 300 _C.SOLVER = CfgNode() _C.SOLVER.BASE_LR = 0.001 _C.SOLVER.BIAS_LR_FACTOR = 2 _C.SOLVER.OPT_TYPE = "Adam" _C.SOLVER.MOMENTUM = 0.996 _C.SOLVER.ADAM_BETA = 0.9999427846237621 _C.SOLVER.WEIGHT_DECAY = 0.0005 _C.SOLVER.WEIGHT_DECAY_BIAS = 0 _C.SOLVER.GAMMA = 0.5 _C.SOLVER.STEPS = (999999, 999999) _C.SOLVER.WARMUP_FACTOR = 1.0 / 3 _C.SOLVER.WARMUP_ITERS = 500 _C.SOLVER.WARMUP_METHOD = "linear" _C.SOLVER.MAX_TIME_SECS = 999999999 # Print metrics every _ seconds _C.SOLVER.PRINT_METRICS_TIME = 180 #TODO: set back to 180 # write to tensorboard summary every_ secconds _C.SOLVER.TENSORBOARD_SECS = 1 # Checkpoint every _ seconds _C.SOLVER.CHECKPOINT_SECS = 1200 # Run validation every _ seconds _C.SOLVER.VALIDATION_SECS = 60 #TODO: change back to 300 _C.SOLVER.VALIDATION_MAX_SECS = 9999 if _C.DATASETS.BASE_NAME == "intphys": _C.DATASETS.TRAIN = ("intphys_val", ) _C.DATASETS.TEST = ( "intphys_dev_O1", "intphys_dev_O2", "intphys_dev_O3", # "intphys_dev-meta_O1", # "intphys_dev-meta_O2", # "intphys_dev-meta_O3" ) _C.ATTRIBUTES_KEYS = ("pred_attr_401469", "pred_attr_003227") elif _C.DATASETS.BASE_NAME == "adept": _C.ATTRIBUTES_KEYS = ( "attributes", # "pred_attr_00650", "pred_attr_43044", # 'pred_attr_10580', # "pred_attr_18377", # "pred_attr_34216" ) _C.DATASETS.TRAIN = ("adept_train", ) _C.DATASETS.TEST = ( "adept_val", # "adept_train", # "adept_human_create", # "adept_human_vanish", # "adept_human_short-overturn", # "adept_human_long-overturn", # "adept_human_visible-discontinuous", # "adept_human_invisible-discontinuous", # "adept_human_delay", # "adept_human_block", ) return _C