6. 验证数据
验证其实是加载验证集,然后使用best.pt进行推理,得到的各项指标数据。
from ultralytics import YOLO
if __name__=="__main__":
# 加载最优模型的路径
pth_path=r"ultralytics\runs\detect\train*\weights\best.pt"
model = YOLO(pth_path) # load a custom model
# 验证模型
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category
7. 测试数据
from ultralytics import YOLO
if __name__=="__main__":
# 加载最优模型的路径
pth_path=r"ultralytics\runs\detect\train*\weights\best.pt"
# 测试结果保存的地址
test_path=r"ultralytics\detect_test"
# 加载最优模型
model = YOLO(pth_path)
# 预测模型
results = model(test_path,save=True,conf=0.5)
8. 代码导出
注释:导出onnx模型的时候,需要设置opset=11,不然导出模型可能会报错,或者会出现警告。此外,最好设置动态导出onnx,这样模型的输入就不会仅限制在640*640,而可以是任意batch_size,还有任意尺寸的图片了,并且可以同时预测batch_size张图片。
注释:使用netron可视化onnx模型。
from ultralytics import YOLO
if __name__=="__main__":
pth_path=r"ultralytics\runs\detect\train*\weights\best.pt\best.pt"
model = YOLO(pth_path)
# 导出模型
model.export(format='onnx',opset=11,dynamic=True)
9. 文件路径结构
路径:ultralytics
预训练权重文件 yolov8s.pt
训练文件 train.py
验证文件 validation.py
测试文件 test.py
导出文件 exportion.py