自用:基于Pytorch的YOLOv11模型训练自己的数据集
1. 数据集准备
本次模型训练使用NET-DET数据集,数据集格式转化及相关操作,参考下列文章。
数据集准备好后,记录好位置,后续在代码调试中进行配置。
2. 模型环境配置
2.1 虚拟环境的创建
写在前面:在进行代码复现时,本想在YOLOv8模型环境的基础上添加部分环境依赖实现对YOLOv11模型的训练,但是在这个过程中出现了很多的问题。所以,建议在运行不同代码时,必须新建一个合适的虚拟环境,避免出现各种不应该出现的问题。
开始创建虚拟环境:
详细过程参考文章中的第3部分:
自用:目标检测算法之基于Pytorch的SSD算法复现_ssd-pytorch算法budding csdn-CSDN博客
对本次代码而言,需要创建的虚拟环境为:
conda create --name=YOLOV11 python=3.9.21
创建完成后,激活虚拟环境并在此环境下安装必要的环境依赖:
激活虚拟环境:
conda activate YOLOV11
2.2 配置代码运行所需要的环境
安装基于GPU的torch:
pip --isolated install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
【注意】
1.要安装适合自己的GPU的torch,安装时可以去torch官网去查找!
2.--isolated 这个命令,作用是将环境依赖下载到YOLOV11这个虚拟环境中,如果不适用这个,可能会导致下载的环境依赖不存在于YOLOV11中。
其他环境依赖如下所示:
Package Version
------------------- ------------
certifi 2024.12.14
charset-normalizer 3.4.1
colorama 0.4.6
contourpy 1.3.0
cycler 0.12.1
filelock 3.13.1
fonttools 4.55.3
fsspec 2024.2.0
idna 3.10
importlib_resources 6.4.5
iniconfig 2.0.0
Jinja2 3.1.3
kiwisolver 1.4.7
MarkupSafe 2.1.5
matplotlib 3.9.4
mpmath 1.3.0
networkx 3.2.1
numpy 1.26.3
opencv-python 4.10.0.84
packaging 24.2
pandas 2.2.3
pillow 10.2.0
pip 24.2
pluggy 1.5.0
psutil 6.1.1
py-cpuinfo 9.0.0
pyparsing 3.2.0
python-dateutil 2.9.0.post0
pytz 2024.2
PyYAML 6.0.2
requests 2.32.3
scipy 1.13.1
seaborn 0.13.2
setuptools 75.1.0
six 1.17.0
sympy 1.13.1
torch 2.5.1+cu121
torchaudio 2.5.1+cu121
torchvision 0.20.1+cu121
tqdm 4.67.1
typing_extensions 4.9.0
tzdata 2024.2
ultralytics 8.3.54
ultralytics-thop 2.0.13
urllib3 2.3.0
wheel 0.44.0
zipp 3.21.0
3. 下载代码及调试
3.1 下载代码
本此代码复现,参考以下文章:
超详细目标检测:YOLOv11(ultralytics)训练自己的数据集,新手小白也能学会训练模型,手把手教学一看就会_yolov11训练-CSDN博客
代码下载地址:
https://github.com/ultralytics/ultralytics?tab=readme-ov-file
注意:最好使用git下载,并开启科学上网!
3.2 代码调试
3.2.1 数据集
准备好数据集之后,将数据集放置在代码的根目录文件夹下,如下图所示: 
3.2.2 权重文件下载
权重文件的下载地址如下所示:
#YOLO11n
https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt
#YOLO11s
https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s.pt
#YOLO11m
https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11m.pt
#YOLO11l
https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11l.pt
#YOLO11x
https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11x.pt
也可以在代码中README.md文件中进行下载 :

除上述权重文件外,还有其他的可以选择。
在根目录下创建一个文件夹,并将下载的权重文件放置在文件夹内:
3.2.3 代码调试
1. 修改data.yaml文件(数据集中的文件),将该文件中的tset、train和val的地址更换为代码数据集中的相关地址。

2. 创建一个yolov11_train.py的文件,并在文件中写入下列代码
from ultralytics import YOLO
if __name__ == '__main__':
model = YOLO('ultralytics/cfg/models/11/yolo11.yaml')
model.load('detection(COCO)/yolo11n.pt')
results = model.train(data='success_set_partitioning/data.yaml', epochs=300, imgsz=640,
device=0, optimizer='SGD', workers=8, batch=32, amp=False)
具体解释:
model = YOLO('ultralytics/cfg/models/11/yolo11.yaml')
从YAML建立一个新模型,此处使用的是哪一个模型就要使用对应的yaml。
model.load('detection(COCO)/yolo11n.pt')
加载一个预训练的模型权重文件。此处夹杂物的地址就是上文3.2.2 中下载并放置在文件夹中的圈子文件地址。
results = model.train(data='success_set_partitioning/data.yaml', epochs=300, imgsz=640,
device=0, optimizer='SGD', workers=8, batch=32, amp=False
'''
data='data.yaml':指定了数据集的配置文件,该文件包含了训练和验证数据集的路径、类别信息等。
epochs=100:设置训练的总轮数(epoch),每个epoch会遍历一次完整的数据集。
imgsz=640:设置输入图像的大小,单位是像素。YOLO模型通常需要固定大小的输入。
device=0:指定训练设备,0通常代表第一个GPU设备,如果是负数则代表使用CPU。
optimizer='SGD':设置优化器,这里使用的是随机梯度下降(SGD)。
workers=8:设置数据加载时的工作线程数,增加线程数可以加快数据加载速度。
batch=64:设置每个batch的大小,即每次迭代中用于训练的图像数量。
amp=False:设置是否使用自动混合精度(Automatic Mixed Precision)训练,这里设置为False表示不使用。
results:
results变量将存储训练过程中的结果,包括训练和验证的损失、准确率等指标,以及最终模型的性能
'''
4. 代码运行
设置好yolov11_train.py文件后,点击代码运行即可。
更多推荐
所有评论(0)