Files
observer/training/train_server.py
T

19 lines
1.0 KiB
Python

from ultralytics import YOLO
import os
# 训练分辨率与端侧推理对齐:tflite 导出/真机推理均为 704x704。
# 训练 1280 会让模型对"清晰大目标"自信,推理时目标变小置信度崩坏(误报根源)。
# multi_scale=0.5 随机缩放输入 0.5~1.5x,进一步抗尺度漂移。
# 训练完成后导出 tflite(imgsz=704,与训练一致)。
os.chdir("/opt/pheasant_data")
model = YOLO("yolov8n.pt")
model.train(data="datasets/yolo/dataset.yaml", imgsz=704, epochs=150,
patience=30, batch=16, device=0, workers=4,
# project 必须绝对路径,相对路径会被拼到默认 runs/detect 下造成双层嵌套
project="/opt/pheasant_data/runs/pheasant", name="yolov8n_704",
exist_ok=True, plots=True, multi_scale=0.5)
# 导出 tflite:输入固定 [1,3,704,704],与 flutter_app/assets/model.tflite 一致
model.export(format="tflite", imgsz=704)
print("EXPORT_DONE: /opt/pheasant_data/runs/pheasant/yolov8n_704/weights/best.tflite")