Build a LR scheduler from config.
(
cfg: CfgNode, optimizer: torch.optim.Optimizer
)
| 196 | |
| 197 | |
| 198 | def build_lr_scheduler( |
| 199 | cfg: CfgNode, optimizer: torch.optim.Optimizer |
| 200 | ) -> torch.optim.lr_scheduler._LRScheduler: |
| 201 | """ |
| 202 | Build a LR scheduler from config. |
| 203 | """ |
| 204 | name = cfg.SOLVER.LR_SCHEDULER_NAME |
| 205 | if name == "WarmupMultiStepLR": |
| 206 | return WarmupMultiStepLR( |
| 207 | optimizer, |
| 208 | cfg.SOLVER.STEPS, |
| 209 | cfg.SOLVER.GAMMA, |
| 210 | warmup_factor=cfg.SOLVER.WARMUP_FACTOR, |
| 211 | warmup_iters=cfg.SOLVER.WARMUP_ITERS, |
| 212 | warmup_method=cfg.SOLVER.WARMUP_METHOD, |
| 213 | ) |
| 214 | elif name == "WarmupCosineLR": |
| 215 | return WarmupCosineLR( |
| 216 | optimizer, |
| 217 | cfg.SOLVER.MAX_ITER, |
| 218 | warmup_factor=cfg.SOLVER.WARMUP_FACTOR, |
| 219 | warmup_iters=cfg.SOLVER.WARMUP_ITERS, |
| 220 | warmup_method=cfg.SOLVER.WARMUP_METHOD, |
| 221 | ) |
| 222 | else: |
| 223 | raise ValueError("Unknown LR scheduler: {}".format(name)) |
no test coverage detected