From 66bca50c4745411eeb6846b4ae7437c462a11a5d Mon Sep 17 00:00:00 2001 From: wa22 Date: Fri, 24 May 2024 07:38:21 +0000 Subject: [PATCH] fix non-coco val --- ultralytics/engine/validator.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ultralytics/engine/validator.py b/ultralytics/engine/validator.py index aa329a41..8f5817ac 100644 --- a/ultralytics/engine/validator.py +++ b/ultralytics/engine/validator.py @@ -112,7 +112,7 @@ class BaseValidator: if self.training: self.device = trainer.device self.data = trainer.data - self.args.half = self.device.type != "cpu" # force FP16 val during training + # self.args.half = self.device.type != "cpu" # force FP16 val during training model = trainer.ema.ema or trainer.model model = model.half() if self.args.half else model.float() # self.model = model @@ -196,16 +196,17 @@ class BaseValidator: self.check_stats(stats) self.speed = dict(zip(self.speed.keys(), (x.t / len(self.dataloader.dataset) * 1e3 for x in dt))) self.finalize_metrics() - # self.print_results() + if not (self.args.save_json and self.jdict): + self.print_results() self.run_callbacks("on_val_end") if self.training: model.float() - assert(self.args.save_json and self.jdict) - with open(str(self.save_dir / "predictions.json"), "w") as f: - LOGGER.info(f"Saving {f.name}...") - json.dump(self.jdict, f) # flatten and save - stats = self.eval_json(stats) # update stats - stats['fitness'] = stats['metrics/mAP50-95(B)'] + if self.args.save_json and self.jdict: + with open(str(self.save_dir / "predictions.json"), "w") as f: + LOGGER.info(f"Saving {f.name}...") + json.dump(self.jdict, f) # flatten and save + stats = self.eval_json(stats) # update stats + stats['fitness'] = stats['metrics/mAP50-95(B)'] results = {**stats, **trainer.label_loss_items(self.loss.cpu() / len(self.dataloader), prefix="val")} return {k: round(float(v), 5) for k, v in results.items()} # return results as 5 decimal place floats else: