MCPcopy
hub / github.com/microsoft/Cream / build_optimizer

Function build_optimizer

TinyViT/optimizer.py:13–37  ·  view source on GitHub ↗

Build optimizer, set weight decay of normalization to 0 by default.

(config, model)

Source from the content-addressed store, hash-verified

11
12
13def build_optimizer(config, model):
14 """
15 Build optimizer, set weight decay of normalization to 0 by default.
16 """
17 skip = {}
18 skip_keywords = {}
19 if hasattr(model, 'no_weight_decay'):
20 skip = model.no_weight_decay()
21 if hasattr(model, 'no_weight_decay_keywords'):
22 skip_keywords = model.no_weight_decay_keywords()
23 parameters = set_weight_decay(model, skip, skip_keywords)
24
25 # Modified for TinyViT
26 parameters = divide_param_groups_by_lr_scale(parameters)
27
28 opt_lower = config.TRAIN.OPTIMIZER.NAME.lower()
29 optimizer = None
30 if opt_lower == 'sgd':
31 optimizer = optim.SGD(parameters, momentum=config.TRAIN.OPTIMIZER.MOMENTUM, nesterov=True,
32 lr=config.TRAIN.BASE_LR, weight_decay=config.TRAIN.WEIGHT_DECAY)
33 elif opt_lower == 'adamw':
34 optimizer = optim.AdamW(parameters, eps=config.TRAIN.OPTIMIZER.EPS, betas=config.TRAIN.OPTIMIZER.BETAS,
35 lr=config.TRAIN.BASE_LR, weight_decay=config.TRAIN.WEIGHT_DECAY)
36
37 return optimizer
38
39
40def set_weight_decay(model, skip_list=(), skip_keywords=()):

Callers 2

mainFunction · 0.90
train_detectorFunction · 0.50

Calls 4

set_weight_decayFunction · 0.70
no_weight_decayMethod · 0.45

Tested by

no test coverage detected