Modify tuner best.pt logic to train first (#8792)

This commit is contained in:
Finlay Morrison 2024-03-08 14:57:12 +00:00 committed by GitHub
parent e45146f25d
commit 10bb39d828
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -188,11 +188,11 @@ class Tuner:
train_args = {**vars(self.args), **mutated_hyp} train_args = {**vars(self.args), **mutated_hyp}
save_dir = get_save_dir(get_cfg(train_args)) save_dir = get_save_dir(get_cfg(train_args))
weights_dir = save_dir / "weights" weights_dir = save_dir / "weights"
ckpt_file = weights_dir / ("best.pt" if (weights_dir / "best.pt").exists() else "last.pt")
try: try:
# Train YOLO model with mutated hyperparameters (run in subprocess to avoid dataloader hang) # Train YOLO model with mutated hyperparameters (run in subprocess to avoid dataloader hang)
cmd = ["yolo", "train", *(f"{k}={v}" for k, v in train_args.items())] cmd = ["yolo", "train", *(f"{k}={v}" for k, v in train_args.items())]
return_code = subprocess.run(cmd, check=True).returncode return_code = subprocess.run(cmd, check=True).returncode
ckpt_file = weights_dir / ("best.pt" if (weights_dir / "best.pt").exists() else "last.pt")
metrics = torch.load(ckpt_file)["train_metrics"] metrics = torch.load(ckpt_file)["train_metrics"]
assert return_code == 0, "training failed" assert return_code == 0, "training failed"