# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. # Written by Hao Du and Houwen Peng # email: haodu8-c@my.cityu.edu.hk and houwen.peng@microsoft.com from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals from yacs.config import CfgNode as CN DEFAULT_CROP_PCT = 0.875 IMAGENET_DEFAULT_MEAN = (0.485, 0.456, 0.406) IMAGENET_DEFAULT_STD = (0.229, 0.224, 0.225) __C = CN() cfg = __C __C.AUTO_RESUME = True __C.DATA_DIR = './data/imagenet' __C.MODEL = 'cream' __C.RESUME_PATH = './experiments/ckps/resume.pth.tar' __C.SAVE_PATH = './experiments/ckps/' __C.SEED = 42 __C.LOG_INTERVAL = 50 __C.RECOVERY_INTERVAL = 0 __C.WORKERS = 4 __C.NUM_GPU = 1 __C.SAVE_IMAGES = False __C.AMP = False __C.ACC_GAP = 5 __C.OUTPUT = 'output/path/' __C.EVAL_METRICS = 'prec1' __C.TTA = 0 # Test or inference time augmentation __C.LOCAL_RANK = 0 __C.VERBOSE = False # dataset configs __C.DATASET = CN() __C.DATASET.NUM_CLASSES = 1000 __C.DATASET.IMAGE_SIZE = 224 # image patch size __C.DATASET.INTERPOLATION = 'bilinear' # Image resize interpolation type __C.DATASET.BATCH_SIZE = 32 # batch size __C.DATASET.NO_PREFECHTER = False __C.DATASET.PIN_MEM = True __C.DATASET.VAL_BATCH_MUL = 4 # model configs __C.NET = CN() __C.NET.SELECTION = 14 __C.NET.GP = 'avg' # type of global pool ["avg", "max", "avgmax", "avgmaxc"] __C.NET.DROPOUT_RATE = 0.0 # dropout rate __C.NET.INPUT_ARCH = [[0], [3], [3, 3], [3, 1, 3], [3, 3, 3, 3], [3, 3, 3], [0]] # model ema parameters __C.NET.EMA = CN() __C.NET.EMA.USE = True __C.NET.EMA.FORCE_CPU = False # force model ema to be tracked on CPU __C.NET.EMA.DECAY = 0.9998 # optimizer configs __C.OPT = 'sgd' __C.OPT_EPS = 1e-2 __C.MOMENTUM = 0.9 __C.WEIGHT_DECAY = 1e-4 __C.OPTIMIZER = CN() __C.OPTIMIZER.NAME = 'sgd' __C.OPTIMIZER.MOMENTUM = 0.9 __C.OPTIMIZER.WEIGHT_DECAY = 1e-3 # scheduler configs __C.SCHED = 'sgd' __C.LR_NOISE = None __C.LR_NOISE_PCT = 0.67 __C.LR_NOISE_STD = 1.0 __C.WARMUP_LR = 1e-4 __C.MIN_LR = 1e-5 __C.EPOCHS = 200 __C.START_EPOCH = None __C.DECAY_EPOCHS = 30.0 __C.WARMUP_EPOCHS = 3 __C.COOLDOWN_EPOCHS = 10 __C.PATIENCE_EPOCHS = 10 __C.DECAY_RATE = 0.1 __C.LR = 1e-2 __C.META_LR = 1e-4 # data augmentation parameters __C.AUGMENTATION = CN() __C.AUGMENTATION.AA = 'rand-m9-mstd0.5' __C.AUGMENTATION.COLOR_JITTER = 0.4 __C.AUGMENTATION.RE_PROB = 0.2 # random erase prob __C.AUGMENTATION.RE_MODE = 'pixel' # random erase mode __C.AUGMENTATION.MIXUP = 0.0 # mixup alpha __C.AUGMENTATION.MIXUP_OFF_EPOCH = 0 # turn off mixup after this epoch __C.AUGMENTATION.SMOOTHING = 0.1 # label smoothing parameters # batch norm parameters (only works with gen_efficientnet based models # currently) __C.BATCHNORM = CN() __C.BATCHNORM.SYNC_BN = False __C.BATCHNORM.BN_TF = False __C.BATCHNORM.BN_MOMENTUM = 0.1 # batchnorm momentum override __C.BATCHNORM.BN_EPS = 1e-5 # batchnorm eps override # supernet training hyperparameters __C.SUPERNET = CN() __C.SUPERNET.UPDATE_ITER = 1300 __C.SUPERNET.SLICE = 4 __C.SUPERNET.POOL_SIZE = 10 __C.SUPERNET.RESUNIT = False __C.SUPERNET.DIL_CONV = False __C.SUPERNET.UPDATE_2ND = True __C.SUPERNET.FLOPS_MAXIMUM = 600 __C.SUPERNET.FLOPS_MINIMUM = 0 __C.SUPERNET.PICK_METHOD = 'meta' # pick teacher method __C.SUPERNET.META_STA_EPOCH = 20 # start using meta picking method __C.SUPERNET.HOW_TO_PROB = 'pre_prob' # sample method __C.SUPERNET.PRE_PROB = (0.05, 0.2, 0.05, 0.5, 0.05, 0.15) # sample prob in 'pre_prob'