MCPcopy Create free account
hub / github.com/MotrixLab/insactor / build_optimizers

Function build_optimizers

diffplanner/core/optimizer/builder.py:8–52  ·  view source on GitHub ↗

Build multiple optimizers from configs. If `cfgs` contains several dicts for optimizers, then a dict for each constructed optimizers will be returned. If `cfgs` only contains one optimizer config, the constructed optimizer itself will be returned. For example, 1) Multiple optimizer

(model, cfgs)

Source from the content-addressed store, hash-verified

6
7
8def build_optimizers(model, cfgs):
9 """Build multiple optimizers from configs. If `cfgs` contains several dicts
10 for optimizers, then a dict for each constructed optimizers will be
11 returned. If `cfgs` only contains one optimizer config, the constructed
12 optimizer itself will be returned. For example,
13
14 1) Multiple optimizer configs:
15
16 .. code-block:: python
17
18 optimizer_cfg = dict(
19 model1=dict(type='SGD', lr=lr),
20 model2=dict(type='SGD', lr=lr))
21
22 The return dict is
23 ``dict('model1': torch.optim.Optimizer, 'model2': torch.optim.Optimizer)``
24
25 2) Single optimizer config:
26
27 .. code-block:: python
28
29 optimizer_cfg = dict(type='SGD', lr=lr)
30
31 The return is ``torch.optim.Optimizer``.
32
33 Args:
34 model (:obj:`nn.Module`): The model with parameters to be optimized.
35 cfgs (dict): The config dict of the optimizer.
36
37 Returns:
38 dict[:obj:`torch.optim.Optimizer`] | :obj:`torch.optim.Optimizer`:
39 The initialized optimizers.
40 """
41 optimizers = {}
42 if hasattr(model, 'module'):
43 model = model.module
44 # determine whether 'cfgs' has several dicts for optimizers
45 if all(isinstance(v, dict) for v in cfgs.values()):
46 for key, cfg in cfgs.items():
47 cfg_ = cfg.copy()
48 module = getattr(model, key)
49 optimizers[key] = build_optimizer(module, cfg_)
50 return optimizers
51
52 return build_optimizer(model, cfgs)

Callers 1

train_modelFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected