Shortcuts

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


[文档]@LOOPS.register_module() class TeacherStudentValLoop(ValLoop): """Loop for validation of model teacher and student."""
[文档] 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
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
dev-3.x
dev
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.