Backto Python Index
EasyDict 可以像操作属性一样操作dict里的变量,爽的飞起。
>>> from easydict import EasyDict as edict
>>> d = edict({'foo':3, 'bar':{'x':1, 'y':2}})
>>> d.foo
3
>>> d.bar.x
1
>>> d = edict(foo=3)
>>> d.foo
3
在实际使用中,EsayDict 常用来写配置文件config.py
:
from easydict import EasyDict as edict
# init
__C = edict()
cfg = __C
__C.DATA = edict()
__C.TRAIN = edict()
__C.VAL = edict()
#------------------------------DATA------------------------
__C.DATA.STD_SIZE = (768,1024)
__C.DATA.DATA_PATH = 'path_to_trainset'
#------------------------------TRAIN------------------------
__C.TRAIN.INPUT_SIZE = (470,640)
__C.TRAIN.BATCH_SIZE = 8
__C.TRAIN.PRETRAINED_MODEL_PATH = 'path_to_pretrained_model'
__C.TRAIN.GPU_ID = [0,1,2,3]
# learning rate settings
__C.TRAIN.LR = 1e-5
__C.TRAIN.LR_DECAY = 0.995
__C.TRAIN.LR_DECAY_START = -1
__C.TRAIN.NUM_EPOCH_LR_DECAY = 1 # epoches
#------------------------------VAL------------------------
__C.VAL.BATCH_SIZE = 2
__C.VAL.DENSE_START = 50
__C.VAL.FREQ = 5