MCPcopy Create free account
hub / github.com/modelscope/modelscope / evaluation_loop

Method evaluation_loop

modelscope/trainers/trainer.py:1274–1308  ·  view source on GitHub ↗

Evaluation loop used by `EpochBasedTrainer.evaluate()`.

(self, data_loader, metric_classes)

Source from the content-addressed store, hash-verified

1272 return result
1273
1274 def evaluation_loop(self, data_loader, metric_classes):
1275 """ Evaluation loop used by `EpochBasedTrainer.evaluate()`.
1276
1277 """
1278 vis_closure = None
1279 if hasattr(self.cfg.evaluation, 'visualization'):
1280 vis_cfg = self.cfg.evaluation.visualization
1281 vis_closure = partial(
1282 self.visualization, dataset=self.eval_dataset, **vis_cfg)
1283
1284 self.invoke_hook(TrainerStages.before_val)
1285 if self._dist:
1286 from modelscope.trainers.utils.inference import multi_gpu_test
1287 # list of batched result and data samples
1288 metric_values = multi_gpu_test(
1289 self,
1290 data_loader,
1291 device=self.device,
1292 metric_classes=metric_classes,
1293 vis_closure=vis_closure,
1294 tmpdir=self.cfg.evaluation.get('cache_dir', None),
1295 gpu_collect=self.cfg.evaluation.get('gpu_collect', False),
1296 data_loader_iters_per_gpu=self._eval_iters_per_epoch)
1297 else:
1298 from modelscope.trainers.utils.inference import single_gpu_test
1299 metric_values = single_gpu_test(
1300 self,
1301 data_loader,
1302 device=self.device,
1303 metric_classes=metric_classes,
1304 vis_closure=vis_closure,
1305 data_loader_iters=self._eval_iters_per_epoch)
1306
1307 self.invoke_hook(TrainerStages.after_val)
1308 return metric_values
1309
1310 def visualization(self, batch_result, dataset, **kwargs):
1311 """ visualization function for evaluation results.

Callers 3

predictMethod · 0.95
evaluateMethod · 0.95
evaluateMethod · 0.45

Calls 4

invoke_hookMethod · 0.95
multi_gpu_testFunction · 0.90
single_gpu_testFunction · 0.90
getMethod · 0.45

Tested by

no test coverage detected