Yolo总结

https://docs.ultralytics.com/usage/python/#benchmark
#总结,首先要安装图表标记
labelme,images和labels,编写yaml
 
#Pycharm终端运行
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124 -i https://pypi.tuna.tsinghua.edu.cn/simple
 
#安装ultralytics
pip install ultralytics
 
#训练模型
from ultralytics import YOLO
model = YOLO("yolo11n.yaml")
model = YOLO("yolo11n.pt")
results = model.train(data="yoloA\A.yaml", epochs=50)#epochs值越大越好,默认100
results = model.val(data="yoloA\A.yaml", conf=0.25, save_json=True)#模型验证
 
#A.yaml内容
path: E:\Yolov11\Yolo\yoloA # 注意修改自己NEU-DET数据集的路径
train: train/images  # train images
val: val/images  # val images
test: test/images  # test images
nc: 1
# Classes names: ['dog','cat']
names:
  0: bad
from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # load a pretrained model (recommended for training)

# Train the model with MPS
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device="mps")

如何使用我的数据集训练自定义 YOLO 模型?

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo11n.yaml")

# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)
resume您可以通过将参数设置为True调用该方法时轻松恢复YOLO中的培训,并指定包含部分训练的模型权重的文件train路径。
from ultralytics import YOLO

# Load a model
model = YOLO("path/to/last.pt")  # load a partially trained model

# Resume training
results = model.train(resume=True)
#使用训练好的模型
from ultralytics import YOLO
model = YOLO(r"runs\detect\train\weights\best.pt")
results = model.val(data=r"val.yaml",imgsz=2024,batch=30,iou=0.6, conf=0.25)
from ultralytics import YOLO

# Load a pretrained YOLO model
model = YOLO("yolo11n.pt")

# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Visualize the results
for result in results:
    result.show()

如何将YOLO集成到我的Python项目中用于物体检测?

from ultralytics import YOLO

# Load a pretrained YOLO model
model = YOLO("yolo11n.pt")

# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Visualize the results
for result in results:
    result.show()

如何导出 YOLO 模型以进行部署?

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
model.export(format="onnx")

我可以在不同的数据集上验证我的YOLO模型吗?

from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo11n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate the model on a different dataset
model.val(data="path/to/separate/data.yaml")

YOLO 中有哪些不同的模式?

Ultralytics YOLO 提供了多种模式以满足不同的机器学习工作流程。这些包括:

  • 训练:使用自定义数据集训练模型。
  • Val:在验证集上验证模型性能。
  • 预测:对新的图像或视频流进行预测。
  • 导出:将模型导出为ONNX和TensorRT等各种格式。
  • 跟踪:视频流中的实时物体跟踪。
  • 基准测试:在不同的配置下基准测试模型性能。

每个模式都是为模型开发和部署的不同阶段提供全面功能而设计的.

争论 类型 默认 描述
model str None 指定培训模型文件。接受.pt验证模型或配置文件的路径.yaml。定义模型结构或初始化权重的必要条件。
data str None 数据集配置文件(例如coco8.yaml)的路径。该文件包含特定于数据集的参数,包括培训和验证数据的途径,类名和类数。
epochs int 100 训练时期的总数。每个时期都代表整个数据集的完整通行证。调整此值会影响训练持续时间和模型性能。
time float None 小时的最大训练时间。如果设置,这将覆盖epochs参数,允许训练在指定的持续时间后自动停止。对于时间约束的培训方案很有用。
patience int 100 在停止培训之前,在不改善验证指标的情况下等待时的时代数量。在性能高原时停止训练,有助于防止过度适应。
batch int 16 批处理大小,具有三种模式:设置为整数(例如batch=16),60%GPU内存利用率(batch=-1)的自动模式或具有指定利用率分数(batch=0.70)的自动模式。
imgsz int或者list 640 训练目标图像大小。所有图像都将其调整到该维度之前,然后将其馈入模型。影响模型的准确性和计算复杂性。
save bool True 可以节省训练检查点和最终模型权重。对于恢复培训或模型部署有用。
save_period int -1 保存模型检查点的频率,以时期指定。 -1的值禁用此功能。在长期训练期间保存临时模型有用。
cache bool False True在内存( / ram),磁盘(disk)上或禁用它( )中的数据集图像的缓存False。通过减少磁盘I/O,以增加内存使用量来提高训练速度。
device intstrlist None 指定用于培训的计算设备:单个GPU(device=0),多个GPU(device=0,1),CPU(device=cpu)或MPS Apple Silicon(device=mps)。
workers int 8 数据加载的工作线数(RANK如果多GPU培训)。影响数据预处理的速度和进食模型,在多GPU设置中尤其有用。
project str None 保存培训输出的项目目录的名称。允许组织不同实验的存储。
name str None 训练运行的名称。用于在项目文件夹中创建一个子目录,其中存储了训练日志和输出。
exist_ok bool False 如果为true,则允许覆盖现有项目/名称目录。对于迭代实验有用,无需手动清除先前的输出。
pretrained bool或者str True 确定是否从验证的模型开始培训。可以是布尔值,也可以是特定模型的字符串路径,从而从中加载权重。提高培训效率和模型性能。
optimizer str 'auto' 选择优化器进行培训。选项包括SGD,,,,,,或用于基于模型配置的自动选择Adam。影响收敛速度和稳定性。AdamWNAdamRAdamRMSPropauto
seed int 0 为训练设置随机种子,确保具有相同配置的运行过程中结果的可重复性。
deterministic bool True 力确定性算法的使用,确保可重复性,但由于对非确定性算法的限制,可能会影响性能和速度。
single_cls bool False 在培训期间,将多级数据集中的所有课程视为单个类。对于二进制分类任务或专注于对象存在而不是分类时。
classes list[int] None 指定要训练的类ID列表。在培训期间过滤出来并仅专注于某些课程。
rect bool False 启用矩形训练,优化最小填充物的批处理组成。可以提高效率和速度,但可能会影响模型准确性。
multi_scale bool False imgsz通过在训练过程中最多增加/减少来启用多尺度培训0.5。在推断过程中,训练模型更准确imgsz
cos_lr bool False 利用余弦学习率调度程序,在余弦曲线上对时期的学习率调整了学习率。有助于管理学习率以更好地收敛。
close_mosaic int 10 在最后一个n段中禁用马赛克数据扩展,以在完成前稳定训练。设置为0禁用此功能。
resume bool False 从最后保存的检查站恢复培训。自动加载模型权重,优化器状态和时期计数,从而无缝进行训练。
amp bool True 启用自动混合精度(AMP)训练,减少记忆使用情况并可能对准确性影响最小的培训加速训练。
fraction float 1.0 指定用于培训的数据集的分数。允许在完整数据集的子集上进行培训,可用于实验或资源有限时。
profile bool False 在训练过程中启用onnx和张力速度的分析,可用于优化模型部署。
freeze int或者list None 通过索引冻结模型或指定图层的前层,减少了可训练的参数的数量。可用于微调或转移学习
lr0 float 0.01 初始学习率(即SGD=1E-2Adam=1E-3。调整此值对于优化过程至关重要,从而影响了模型权重的更新方式。
lrf float 0.01 最终学习率是初始率的一部分=(lr0 * lrf),与调度程序一起使用,以随着时间的推移调整学习率。
momentum float 0.937 ADAM优化器的SGD或BETA1的动量因素,影响了过去梯度在当前更新中的掺入。
weight_decay float 0.0005 L2正则化项,惩罚大量重量以防止过度拟合。
warmup_epochs float 3.0 学习率热身的时期数量,逐渐将学习率从低价值提高到初始学习率,以便尽早稳定培训。
warmup_momentum float 0.8 热身阶段的初始动量,逐渐调整为在热身期间的设定动量。
warmup_bias_lr float 0.1 在热身阶段,偏差参数的学习率有助于稳定最初时期的模型训练。
box float 7.5 损失函数中盒子损耗组件的重量,影响了准确预测边界盒坐标的重点。
cls float 0.5 总损失函数中分类损失的重量,影响正确类预测相对于其他组件的重要性。
dfl float 1.5 分布焦点损失的重量,用于某些Yolo版本,用于细粒度分类。
pose float 12.0 在训练姿势估计的模型中,姿势损失的重量影响了精确预测姿势关键的重点。
kobj float 2.0 姿势估计模型中关键点对象损失的重量,平衡检测置信度与姿势精度。
nbs int 64 标称损失归一化的标称批量大小。
overlap_mask bool True 确定是否应将对象掩码合并到一个掩码中进行训练,或者为每个对象分开。如果重叠,则在合并期间,较小的面膜在较大面罩的顶部被覆盖。
mask_ratio int 4 分割面罩的下样本比,影响训练过程中使用的面膜的分辨率。
dropout float 0.0 分类任务中正规化的辍学率,以防止训练过程中随机省略单位过度拟合。
val bool True 在培训期间启用验证,允许在单独的数据集上定期评估模型性能。
plots bool False 生成并保存培训和验证指标的图以及预测示例,从而为模型性能和学习进步提供了视觉见解。
posted @ 2025-04-16 15:17  多见多闻  阅读(237)  评论(0)    收藏  举报