| 51 | rule, test_fn, greater_keys, less_keys, **eval_kwargs) |
| 52 | |
| 53 | def evaluate(self, runner, results): |
| 54 | |
| 55 | with tempfile.TemporaryDirectory() as tmp_dir: |
| 56 | eval_res = self.dataloader.dataset.evaluate(results, |
| 57 | work_dir=tmp_dir, |
| 58 | logger=runner.logger, |
| 59 | **self.eval_kwargs) |
| 60 | |
| 61 | for name, val in eval_res.items(): |
| 62 | runner.log_buffer.output[name] = val |
| 63 | runner.log_buffer.ready = True |
| 64 | |
| 65 | if self.save_best is not None: |
| 66 | if self.key_indicator == 'auto': |
| 67 | self._init_rule(self.rule, list(eval_res.keys())[0]) |
| 68 | |
| 69 | return eval_res[self.key_indicator] |
| 70 | |
| 71 | return None |
| 72 | |
| 73 | |
| 74 | class DistEvalHook(BaseDistEvalHook): |