| 74 | class DistEvalHook(BaseDistEvalHook): |
| 75 | |
| 76 | def __init__(self, |
| 77 | dataloader, |
| 78 | start=None, |
| 79 | interval=1, |
| 80 | by_epoch=True, |
| 81 | save_best=None, |
| 82 | rule=None, |
| 83 | test_fn=None, |
| 84 | greater_keys=mogen_GREATER_KEYS, |
| 85 | less_keys=mogen_LESS_KEYS, |
| 86 | broadcast_bn_buffer=True, |
| 87 | tmpdir=None, |
| 88 | gpu_collect=False, |
| 89 | **eval_kwargs): |
| 90 | |
| 91 | if test_fn is None: |
| 92 | from mogen.apis import multi_gpu_test |
| 93 | test_fn = multi_gpu_test |
| 94 | |
| 95 | # update "save_best" according to "key_indicator" and remove the |
| 96 | # latter from eval_kwargs |
| 97 | if 'key_indicator' in eval_kwargs or isinstance(save_best, bool): |
| 98 | warnings.warn( |
| 99 | '"key_indicator" will be deprecated in EvalHook.' |
| 100 | 'Please use "save_best" to specify the metric key,' |
| 101 | 'e.g., save_best="pa-mpjpe".', DeprecationWarning) |
| 102 | |
| 103 | key_indicator = eval_kwargs.pop('key_indicator', None) |
| 104 | if save_best is True and key_indicator is None: |
| 105 | raise ValueError('key_indicator should not be None, when ' |
| 106 | 'save_best is set to True.') |
| 107 | save_best = key_indicator |
| 108 | |
| 109 | super().__init__(dataloader, start, interval, by_epoch, save_best, |
| 110 | rule, test_fn, greater_keys, less_keys, |
| 111 | broadcast_bn_buffer, tmpdir, gpu_collect, |
| 112 | **eval_kwargs) |
| 113 | |
| 114 | def evaluate(self, runner, results): |
| 115 | """Evaluate the results. |