DetectionModelTraining/12_train_roi_yolov8s_640.bat
2026-03-16 11:16:50 +08:00

93 lines
2.4 KiB
Batchfile

@echo off
chcp 65001 >nul
cls
set "REPO_DIR=%~dp0"
pushd "%REPO_DIR%"
set "YOLO_LAUNCHER="
where yolo >nul 2>nul
if %ERRORLEVEL% equ 0 set "YOLO_LAUNCHER=yolo"
if not defined YOLO_LAUNCHER (
py -3.11 -c "import ultralytics" >nul 2>nul
if %ERRORLEVEL% equ 0 set "YOLO_LAUNCHER=py -3.11 -m ultralytics"
)
if not defined YOLO_LAUNCHER (
python -c "import ultralytics" >nul 2>nul
if %ERRORLEVEL% equ 0 set "YOLO_LAUNCHER=python -m ultralytics"
)
if not defined YOLO_LAUNCHER (
echo [错误] 未找到可用的 Ultralytics 启动方式
echo.
echo 请先确保满足以下任一条件:
echo 1. yolo 命令已加入 PATH
echo 2. py -3.11 可运行并已安装 ultralytics
echo 3. python 可运行并已安装 ultralytics
popd
pause
exit /b 1
)
set "DATASET=%REPO_DIR%datasets\shoe-roi-mix\data.yaml"
if not exist "%DATASET%" (
echo [错误] 找不到 ROI 数据集配置: %DATASET%
echo.
echo 请先构建 ROI 数据集:
echo python "%REPO_DIR%09_build_roi_shoe_dataset.py" --clean
popd
pause
exit /b 1
)
echo ============================================================
echo 训练鞋子 ROI 检测模型 (YOLOv8s + 640x640)
echo ============================================================
echo.
echo [信息] 数据集: %DATASET%
echo [信息] 模型: yolov8s.pt
echo.
set "EPOCHS=150"
set "IMGSZ=640"
set "BATCH=16"
set "PROJECT=%REPO_DIR%runs\roi_yolov8s_640"
set "RUN_NAME=train_roi"
echo 训练参数:
echo - Epochs: %EPOCHS%
echo - Image Size: %IMGSZ%x%IMGSZ%
echo - Batch Size: %BATCH%
echo - Device: GPU (cuda:0)
echo - Project: %PROJECT%
echo - Run Name: %RUN_NAME% ^(已存在时会自动递增,不覆盖旧模型^)
echo.
echo ============================================================
echo 开始训练
echo ============================================================
echo.
call %YOLO_LAUNCHER% detect train data="%DATASET%" model="yolov8s.pt" epochs=%EPOCHS% imgsz=%IMGSZ% batch=%BATCH% device=0 project="%PROJECT%" name="%RUN_NAME%"
if %ERRORLEVEL% neq 0 (
echo.
echo [错误] 训练失败!
popd
pause
exit /b 1
)
echo.
echo ============================================================
echo 训练完成!
echo ============================================================
echo.
echo 模型输出目录: %PROJECT%
echo.
popd
pause