Shortcuts

Source code for mmdet.engine.runner.loops

# Copyright (c) OpenMMLab. All rights reserved.

from mmengine.model import is_model_wrapper
from mmengine.runner import ValLoop

from mmdet.registry import LOOPS


[docs]@LOOPS.register_module() class TeacherStudentValLoop(ValLoop): """Loop for validation of model teacher and student."""
[docs] def run(self): """Launch validation for model teacher and student.""" self.runner.call_hook('before_val') self.runner.call_hook('before_val_epoch') self.runner.model.eval() model = self.runner.model if is_model_wrapper(model): model = model.module assert hasattr(model, 'teacher') assert hasattr(model, 'student') predict_on = model.semi_test_cfg.get('predict_on', None) multi_metrics = dict() for _predict_on in ['teacher', 'student']: model.semi_test_cfg['predict_on'] = _predict_on for idx, data_batch in enumerate(self.dataloader): self.run_iter(idx, data_batch) # compute metrics metrics = self.evaluator.evaluate(len(self.dataloader.dataset)) multi_metrics.update( {'/'.join((_predict_on, k)): v for k, v in metrics.items()}) model.semi_test_cfg['predict_on'] = predict_on self.runner.call_hook('after_val_epoch', metrics=multi_metrics) self.runner.call_hook('after_val')
Read the Docs v: 3.x
Versions
latest
stable
3.x
v3.0.0rc0
v2.28.2
v2.28.1
v2.28.0
v2.27.0
v2.26.0
v2.25.3
v2.25.2
v2.25.1
v2.25.0
v2.24.1
v2.24.0
v2.23.0
v2.22.0
v2.21.0
v2.20.0
v2.19.1
v2.19.0
v2.18.1
v2.18.0
v2.17.0
v2.16.0
v2.15.1
v2.15.0
v2.14.0
v2.13.0
v2.12.0
v2.11.0
v2.10.0
v2.9.0
v2.8.0
v2.7.0
v2.6.0
v2.5.0
v2.4.0
v2.3.0
v2.2.1
v2.2.0
v2.1.0
v2.0.0
v1.2.0
test-3.0.0rc0
main
dev-3.x
dev
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.