Skip to content

Commit f39371b

Browse files
committed
Support custom hooks in IterBasedRunner.
1 parent 96c4b70 commit f39371b

File tree

1 file changed

+33
-13
lines changed

1 file changed

+33
-13
lines changed

mmcv/runner/iter_based_runner.py

+33-13
Original file line numberDiff line numberDiff line change
@@ -225,28 +225,48 @@ def register_training_hooks(self,
225225
optimizer_config=None,
226226
checkpoint_config=None,
227227
log_config=None,
228-
momentum_config=None):
228+
momentum_config=None,
229+
custom_hooks_config=None):
229230
"""Register default hooks for iter-based training.
230231
232+
Checkpoint hook, optimizer stepper hook and logger hooks will be set to
233+
`by_epoch=False` by default.
234+
231235
Default hooks include:
232236
233-
- LrUpdaterHook
234-
- MomentumUpdaterHook
235-
- OptimizerStepperHook
236-
- CheckpointSaverHook
237-
- IterTimerHook
238-
- LoggerHook(s)
237+
+----------------------+-------------------------+
238+
| Hooks | Priority |
239+
+======================+=========================+
240+
| LrUpdaterHook | VERY_HIGH (10) |
241+
+----------------------+-------------------------+
242+
| MomentumUpdaterHook | HIGH (30) |
243+
+----------------------+-------------------------+
244+
| OptimizerStepperHook | ABOVE_NORMAL (40) |
245+
+----------------------+-------------------------+
246+
| CheckpointSaverHook | NORMAL (50) |
247+
+----------------------+-------------------------+
248+
| IterTimerHook | LOW (70) |
249+
+----------------------+-------------------------+
250+
| LoggerHook(s) | VERY_LOW (90) |
251+
+----------------------+-------------------------+
252+
| CustomHook(s) | defaults to NORMAL (50) |
253+
+----------------------+-------------------------+
254+
255+
If custom hooks have same priority with default hooks, custom hooks
256+
will be triggered after default hooks.
239257
"""
240258
if checkpoint_config is not None:
241259
checkpoint_config.setdefault('by_epoch', False)
242260
if lr_config is not None:
243261
lr_config.setdefault('by_epoch', False)
244-
self.register_lr_hook(lr_config)
245-
self.register_momentum_hook(momentum_config)
246-
self.register_optimizer_hook(optimizer_config)
247-
self.register_checkpoint_hook(checkpoint_config)
248-
self.register_hook(IterTimerHook())
249262
if log_config is not None:
250263
for info in log_config['hooks']:
251264
info.setdefault('by_epoch', False)
252-
self.register_logger_hooks(log_config)
265+
super(IterBasedRunner, self).register_training_hooks(
266+
lr_config=lr_config,
267+
momentum_config=momentum_config,
268+
optimizer_config=optimizer_config,
269+
checkpoint_config=checkpoint_config,
270+
log_config=log_config,
271+
timer_config=IterTimerHook(),
272+
custom_hooks_config=custom_hooks_config)

0 commit comments

Comments
 (0)