| 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( |
| 57 | results, |
| 58 | res_folder=tmp_dir, |
| 59 | logger=runner.logger, |
| 60 | **self.eval_kwargs) |
| 61 | |
| 62 | for name, val in eval_res.items(): |
| 63 | runner.log_buffer.output[name] = val |
| 64 | runner.log_buffer.ready = True |
| 65 | |
| 66 | if self.save_best is not None: |
| 67 | if self.key_indicator == 'auto': |
| 68 | self._init_rule(self.rule, list(eval_res.keys())[0]) |
| 69 | |
| 70 | return eval_res[self.key_indicator] |
| 71 | |
| 72 | return None |
| 73 | |
| 74 | |
| 75 | class DistEvalHook(BaseDistEvalHook): |