基于 Python 和 YOLOv11 训练自定义数据集
使用 Python 和 YOLOv11 框架训练自定义数据集的完整流程。主要步骤包括:下载 Ultralytics 源码,通过 Anaconda 创建虚拟环境并安装 PyTorch 及依赖库;准备符合格式的数据集,编写 data.yaml 配置文件定义路径与类别;修改模型配置文件 yolo11_cap.yaml;最后运行 train.py 脚本进行训练。训练完成后,best.pt 即为最优模型权重。

使用 Python 和 YOLOv11 框架训练自定义数据集的完整流程。主要步骤包括:下载 Ultralytics 源码,通过 Anaconda 创建虚拟环境并安装 PyTorch 及依赖库;准备符合格式的数据集,编写 data.yaml 配置文件定义路径与类别;修改模型配置文件 yolo11_cap.yaml;最后运行 train.py 脚本进行训练。训练完成后,best.pt 即为最优模型权重。

YOLOv11 的数据集格式需要是如下:

我这里省去了 test 测试集的图片。

如果需要自己训练数据集和标注的可以看相关教程。
官网链接:https://github.com/ultralytics/ultralytics

可以创建一个名叫 yolov11 的虚拟环境,名字可以随便取。

需要提前装好 CUDA, cuDNN,这里就不给出了,请找其他教程,也可以先安装好这里的库再去安装 CUDA, cuDNN。
下一步是安装 PyTorch,需要选择和 CUDA 对应的 torch 版本。
我安装的是 12.6 对应的版本,官方链接:https://pytorch.org/get-started/previous-versions/
如果遇到错误请多问问 AI。

新建一个名为 train.py 的 python 文件

点击右下角的标志,弹出弹窗,选择刚才创建的 yolov11 虚拟环境

点击运行可以看到已经切换成 yolov11 的虚拟环境了

之后就是安装所有需要的库
新建一个文件 命名为 requirements.txt

执行安装库命令 pip install -r requirements.txt
certifi charset-normalizer==3.4.4 colorama==0.4.6 coloredlogs==15.0.1 contourpy==1.3.2 cycler==0.12.1 filelock==3.20.0 flatbuffers==25.9.23 fonttools==4.60.1 fsspec==2025.9.0 humanfriendly==10.0 idna==3.11 Jinja2==3.1.6 kiwisolver==1.4.9 MarkupSafe==3.0.3 matplotlib==3.10.7 ml_dtypes==0.5.3 mpmath==1.3.0 networkx==3.4.2 numpy==2.2.6 onnx==1.19.1 onnxruntime==1.23.2 onnxruntime-gpu==1.23.2 onnxslim==0.1.73 opencv-python==4.12.0.88 packaging==25.0 pillow==12.0.0 pip==25.2 polars==1.34.0 polars-runtime-32==1.34.0 protobuf==6.33 psutil== pyparsing== pyreadline3== python-dateutil==.post0 PyYAML== requests== scipy== setuptools== six== sympy==
如果遇到版本不同,或库不存在这个版本,需要查找 AI,让他给出适合的版本。
环境安装完成,运行 init.py 测试一下,像这样就可以了

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('ultralytics/cfg/models/11/yolo11_cap.yaml') # 指定 YOLO 模型对象,并加载指定配置文件中的模型配置
# model.load('yolov8s.pt') # 加载预训练的权重文件 'yolov8s.pt',加速训练并提升模型性能
model.train(data='data/CAP/cap.yaml', # 指定训练数据集的配置文件路径,这个.yaml 文件包含了数据集的路径和类别信息
cache=False, # 是否缓存数据集以加快后续训练速度,False 表示不缓存
imgsz=640, # 指定训练时使用的图像尺寸,640 表示将输入图像调整为 640x640 像素
epochs=200, # 设置训练的总轮数为 200 轮
batch=16, # 设置每个训练批次的大小为 16,即每次更新模型时使用 16 张图片
close_mosaic=10, # 设置在训练结束前多少轮关闭 Mosaic 数据增强,10 表示在训练的最后 10 轮中关闭 Mosaic
workers=8, # 设置用于数据加载的线程数为 8,更多线程可以加快数据加载速度
patience=50, # 在训练时,如果经过 50 轮性能没有提升,则停止训练(早停机制)
device='0', # 指定使用的设备,'0' 表示使用第一块 GPU 进行训练
optimizer='SGD' # 设置优化器为 SGD(随机梯度下降),用于模型参数更新
)

train: ./train/images # 训练集路径
val: ./val/images # 验证集路径
nc: 3 # class 数量
names: ["Capacitor", "Negative", "Positive"] # class 名称

nc: 3 # 表示目标检测的类别总数
names: ["Capacitor", "Negative", "Positive"] # 表示类别名称列表,与 nc 对应
scales: # YOLO 系列的'复合缩放'参数,用于生成不同大小的模型
s: [0.50, 0.50, 1024] # summary: 181 layers, 9458752 parameters, 9458736 gradients, 21.7 GFLOPs


这样等他自己训练完成就会在 runs 目录下生成想要的模型了,best.pt 就是生成的最好模型了。


微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online