from yacs.config import CfgNode

_C = CfgNode()

_C.MODEL = CfgNode()
_C.MODEL.DEVICE = "cuda"
_C.MODEL.NAME = 'resnet50'
_C.MODEL.LAST_STRIDE = 1
_C.MODEL.PRETRAIN_PATH = ''

_C.INPUT = CfgNode()

_C.INPUT.SIZE_TRAIN = [384, 192]

_C.INPUT.SIZE_TEST = [384, 192]

_C.INPUT.PROB = 0.5
# Values to be used for image normalization
_C.INPUT.PIXEL_MEAN = [0.485, 0.456, 0.406]
# Values to be used for image normalization
_C.INPUT.PIXEL_STD = [0.229, 0.224, 0.225]
_C.INPUT.PADDING = 10

_C.DATASETS = CfgNode()
_C.DATASETS.NAMES = ''
_C.DATASETS.PATH = ''


_C.DATALOADER = CfgNode()
_C.DATALOADER.NUM_WORKERS = 8
_C.DATALOADER.SAMPLER = ''
_C.DATALOADER.NUM_INSTANCE = 16

_C.SOLVER = CfgNode()
_C.SOLVER.OPTIMIZER_NAME = "Adam"

_C.SOLVER.MAX_EPOCHS = 50

_C.SOLVER.BASE_LR = 3e-4
_C.SOLVER.BIAS_LR_FACTOR = 2

_C.SOLVER.MOMENTUM = 0.9

_C.SOLVER.MARGIN = 0.2

_C.SOLVER.WEIGHT_DECAY = 0.0005
_C.SOLVER.WEIGHT_DECAY_BIAS = 0.

_C.SOLVER.GAMMA = 0.1
_C.SOLVER.STEPS = (30, 55)

_C.SOLVER.WARMUP_FACTOR = 1.0 / 3
_C.SOLVER.WARMUP_ITERS = 500
_C.SOLVER.WARMUP_METHOD = "linear"

_C.SOLVER.CHECKPOINT_PERIOD = 50
_C.SOLVER.LOG_PERIOD = 100
_C.SOLVER.EVAL_PERIOD = 50

_C.SOLVER.IMS_PER_BATCH = 64

_C.TEST = CfgNode()
_C.TEST.IMS_PER_BATCH = 128
_C.TEST.WEIGHT = ""

_C.OUTPUT_DIR = ""

