コード例 #1
0
ファイル: train_net.py プロジェクト: VishmiVishara/NAS_cGAN
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
コード例 #2
0
  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
コード例 #3
0
# with datasets listed in DATASETS.TRAIN.
_C.DATASETS.PROPOSAL_FILES_TRAIN = ()
# Number of top scoring precomputed proposals to keep for training
_C.DATASETS.PRECOMPUTED_PROPOSAL_TOPK_TRAIN = 2000
# List of the dataset names for testing. Must be registered in DatasetCatalog
_C.DATASETS.TEST = ()
# List of the pre-computed proposal files for test, which must be consistent
# with datasets listed in DATASETS.TEST.
_C.DATASETS.PROPOSAL_FILES_TEST = ()
# Number of top scoring precomputed proposals to keep for test
_C.DATASETS.PRECOMPUTED_PROPOSAL_TOPK_TEST = 1000

# -----------------------------------------------------------------------------
# DataLoader
# -----------------------------------------------------------------------------
_C.DATALOADER = CN()
# Number of data loading threads
_C.DATALOADER.NUM_WORKERS = 4
# If True, each batch should contain only images for which the aspect ratio
# is compatible. This groups portrait images together, and landscape images
# are not batched with portrait images.
_C.DATALOADER.ASPECT_RATIO_GROUPING = True
# Options: TrainingSampler, RepeatFactorTrainingSampler
_C.DATALOADER.SAMPLER_TRAIN = "TrainingSampler"
# Repeat threshold for RepeatFactorTrainingSampler
_C.DATALOADER.REPEAT_THRESHOLD = 0.0
# if True, the dataloader will filter out images that have no associated
# annotations at train time.
_C.DATALOADER.FILTER_EMPTY_ANNOTATIONS = True

# ---------------------------------------------------------------------------- #
コード例 #4
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
コード例 #5
0
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