This commit is contained in:
2026-08-18 09:27:50 +08:00
commit 66ac6f8a39
10 changed files with 90 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
from argparse import ArgumentParser
from pathlib import Path
from ultralytics import YOLO
def parse_args():
parser = ArgumentParser(description="Train YOLOv8 on this dataset.")
parser.add_argument("--model", default="yolov8n.pt", help="Model or checkpoint path.")
parser.add_argument("--epochs", type=int, default=100)
parser.add_argument("--imgsz", type=int, default=640)
parser.add_argument("--batch", type=int, default=8, help="Use -1 for automatic batch size.")
parser.add_argument("--device", default="0", help="CUDA device such as 0, or cpu.")
parser.add_argument("--workers", type=int, default=4)
parser.add_argument("--patience", type=int, default=30)
parser.add_argument("--name", default="yolov8n_acne")
parser.add_argument("--resume", action="store_true", help="Resume from --model checkpoint.")
return parser.parse_args()
def main():
args = parse_args()
root = Path(__file__).resolve().parent
data = root / "data.yaml"
if not data.is_file():
raise FileNotFoundError(f"Dataset config not found: {data}")
model = YOLO(args.model)
model.train(
data=str(data),
epochs=args.epochs,
imgsz=args.imgsz,
batch=args.batch,
device=args.device,
workers=args.workers,
patience=args.patience,
project=str(root / "runs"),
name=args.name,
pretrained=True,
cache=False,
amp=True,
plots=True,
resume=args.resume,
)
if __name__ == "__main__":
main()