1. train
-
功能:训练模型。
-
参数:
-
data
: 数据集配置文件路径(如yolov8n.yaml
)。 -
epochs
: 训练轮数。 -
imgsz
: 输入图像尺寸。 -
batch
: 批量大小。 -
device
: 使用的设备(如cuda:0
或cpu
)。
-
-
示例:
model.train(data='coco128.yaml', epochs=100, imgsz=640, batch=16, device='cuda:0')
2. predict
-
功能:使用训练好的模型进行推理(检测)。
-
参数:
-
source
: 输入数据源(可以是图像、视频、文件夹路径或摄像头索引)。 -
conf
: 置信度阈值。 -
iou
: IoU 阈值。 -
show
: 是否显示结果。 -
save
: 是否保存结果。
-
-
示例:
results = model.predict(source='image.jpg', conf=0.5, iou=0.45, show=True, save=True)
3. val
-
功能:在验证集上评估模型性能。
-
参数:
-
data
: 数据集配置文件路径。 -
batch
: 批量大小。 -
imgsz
: 输入图像尺寸。 -
conf
: 置信度阈值。 -
iou
: IoU 阈值。 -
device
: 使用的设备。
-
-
示例:
metrics = model.val(data='coco128.yaml', batch=16, imgsz=640, conf=0.5, iou=0.45, device='cuda:0')
4. export
-
功能:将模型导出为其他格式(如 ONNX、TensorRT、CoreML 等)。
-
参数:
-
format
: 导出格式(如onnx
、torchscript
、tflite
等)。 -
imgsz
: 输入图像尺寸。 -
device
: 使用的设备。
-
-
示例:
model.export(format='onnx', imgsz=640, device='cuda:0')
5. to
-
功能:将模型移动到指定设备(如 CPU 或 GPU)。
-
参数:
-
device
: 目标设备(如cuda:0
或cpu
)。
-
-
示例:
model.to('cuda:0')
6. fuse
-
功能:融合模型的卷积层和批归一化层,以加速推理。
-
示例:
model.fuse()
7. info
-
功能:打印模型的详细信息(如层数、参数量等)。
-
示例:
model.info()
8. load
-
功能:加载预训练权重。
-
参数:
-
weights
: 权重文件路径。
-
-
示例:
model.load('yolov8n.pt')
9. save
-
功能:保存模型权重。
-
参数:
-
path
: 保存路径。
-
-
示例:
model.save('my_model.pt')
10. tune
-
功能:超参数调优(YOLOv8 新增功能)。
-
参数:
-
data
: 数据集配置文件路径。 -
epochs
: 训练轮数。 -
imgsz
: 输入图像尺寸。 -
device
: 使用的设备。
-
-
示例:
model.tune(data='coco128.yaml', epochs=100, imgsz=640, device='cuda:0')
11. benchmark
-
功能:对模型进行基准测试,评估推理速度。
-
参数:
-
imgsz
: 输入图像尺寸。 -
device
: 使用的设备。
-
-
示例:
model.benchmark(imgsz=640, device='cuda:0')
12. profile
-
功能:分析模型的计算量和内存占用。
-
示例:
model.profile()
13. augment
-
功能:数据增强(YOLOv8 新增功能)。
-
参数:
-
imgsz
: 输入图像尺寸。 -
batch
: 批量大小。
-
-
示例:
model.augment(imgsz=640, batch=16)
14. plot_results
-
功能:绘制训练结果(如损失曲线、mAP 曲线等)。
-
示例:
model.plot_results()
15. get_flops
-
功能:计算模型的浮点运算量(FLOPs)。
-
示例:
flops = model.get_flops()
16. get_num_params
-
功能:计算模型的参数量。
-
示例:
num_params = model.get_num_params()
总结
YOLOv8 的 model
对象提供了丰富的函数,涵盖了从训练、推理到模型优化的全流程。根据具体需求,可以选择合适的函数进行调用。例如:
-
训练:
train
-
推理:
predict
-
验证:
val
-
导出:
export
-
调优:
tune
-
性能分析:
benchmark
、profile