训练 Yolo 模型时如下所示:
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8s.pt')
results = model.train(data='coco128.yaml',
epochs=100, imgsz=640, save_period=1)
save_period 选项将保存每个纪元。当找到最佳纪元时,文件将保存为 best.pt。
best.pt 的文件大小约为 27MB,每个 epoch 约为 120MB。是否可以在每个时期的训练结束时使用应用于最佳时期的压缩(即使这是在训练后完成的)。
您所看到的与压缩无关。在训练期间保存检查点时,YOLO 训练脚本会保存(除了其他元数据之外)当前模型的权重、模型 EMA 的权重以及优化器参数。从检查点继续训练需要这些,但仅保留 EMA 用于推理。
要删除优化器和当前模型,您可以使用 ultralytics 的实用函数
strip_optimizer
,该函数从给定路径中找到的状态字典中删除不必要的权重,并将较小的文件保存在同一位置。
from ultralytics.utils.torch_utils import strip_optimizer
path_to_checkpoint = "best.pt"
strip_optimizer(path_to_checkpoint)