diff --git a/main.py b/main.py index 0aead69..7c7b65b 100644 --- a/main.py +++ b/main.py @@ -187,13 +187,18 @@ def _executar_treino_sync(ambiente: str, pular_triagem: bool, forcar_do_zero: bo modelo_base.add_callback("on_fit_epoch_end", _on_fit_epoch_end) # Fine-tuning: LR baixo preserva o que o modelo já aprendeu. # Primeiro treino: LR padrão + mais épocas para convergir do zero. + # project/name/exist_ok fixos: sem isso o Ultralytics incrementa o + # diretório a cada treino (train, train2, train3...) e o caminho abaixo + # ficava sempre apontando pro "train" original, subindo pro S3 um + # modelo de uma rodada antiga em vez do que acabou de treinar. + train_dir = f"runs/detect/{ambiente}" if is_fine_tuning: - modelo_base.train(data=yaml_path, epochs=20, imgsz=640, batch=8, device='cpu', plots=True, lr0=0.001, lrf=0.01) + modelo_base.train(data=yaml_path, epochs=20, imgsz=640, batch=8, device='cpu', plots=True, lr0=0.001, lrf=0.01, project="runs/detect", name=ambiente, exist_ok=True) else: - modelo_base.train(data=yaml_path, epochs=30, imgsz=640, batch=8, device='cpu', plots=True, lr0=0.01, lrf=0.01) + modelo_base.train(data=yaml_path, epochs=30, imgsz=640, batch=8, device='cpu', plots=True, lr0=0.01, lrf=0.01, project="runs/detect", name=ambiente, exist_ok=True) modelo_base.reset_callbacks() - best = "runs/detect/train/weights/best.pt" + best = f"{train_dir}/weights/best.pt" if os.path.exists(best): carimbo = datetime.now().strftime("%Y%m%d_%H%M") s3.upload_file(best, BUCKET, f"modelos/{ambiente}/atual/cerebro.pt")