[Yolo遇到的问题] 使用VScode进行ultralytics训练 启动后在scanning阶段意外中断 导致训练无法正常启动
致谢
该问题卡了三天,已经解决。感谢两位大佬在解决该问题上提供的帮助。
现在将问题描述和解决流程进行了整理。
0.问题描述
0.1 环境
系统: Win11
编程环境: VScode
CUDA版本: 13.0
NVIDIA驱动版本: 581.29
Pytorch版本: Stable 2.8.0 (CUDA 12.9)
Ultralytics: 最新发行版(2025.9.16下载)
Python环境(全局): 3.12
Python环境(支持labelimg运行): 3.9
0.2 数据集
自定义的手机数据集,使用labelimg标注(yolo格式)。
工程目录:
D:\yolo\yolo_train_test2
数据集位置:
D:\yolo\yolo_train_test2\datasets\phone
图片位置:
D:\yolo\yolo_train_test2\datasets\phone\images\ 1.jpg
D:\yolo\yolo_train_test2\datasets\phone\images\ 2.jpg
D:\yolo\yolo_train_test2\datasets\phone\images\ 3.jpg
…
标签位置:
D:\yolo\yolo_train_test2\datasets\phone\ labels\ 1.txt
D:\yolo\yolo_train_test2\datasets\phone\ labels\ 2.txt
D:\yolo\yolo_train_test2\datasets\phone\ labels\ 3.txt
…
0.3 工程文件 main.py
from ultralytics import YOLOif __name__ == '__main__':model = YOLO("D:/yolo/yolo_train_test2/yolov8n.pt") model.train(data="D:/yolo/yolo_train_test2/datasets/phone/phone.yaml",epochs=2, batch=2, workers=0, amp=False, save=True,verbose=True, seed=42,project="result/" #训练结果保存在当前工程目录的./result/下)
0.4 终端(powershell)运行内容
$ python ./main.py
开始训练
0.5 运行结果与问题描述
在图片的扫描Scanning阶段程序自动终止,没有启动训练过程。
但是使用官方的模型可以正常运行图片目标检测。
此外,官方提供的YoloV5的源代码可以正常执行训练任务。
0.5 问题原因
Pytorch CUDA版本太新,与ultralytics不兼容
解决: 使用anaconda建立虚拟环境,重新安装低版本的Pytorch和Ultralytics
1.anaconda建立python3.12的虚拟环境
1.1 下载并安装Anaconda
1.2 在"开始"菜单打开anaconda prompt。
1.3 新建环境
新建虚拟环境名称命名为 nyolo
conda create -n <环境名> python=<版本>
conda create -n nyolo python=3.12
等待配置。
询问是否下载下述软件包,Y。
等待下载和配置完成
*此外,可以通过下述代码查看当前计算机存在的虚拟环境:
conda env list
1.4 激活虚拟环境
conda activate <环境名>
conda activate nyolo
激活环境nyolo,激活后,路径前会有 ( nyolo ) 字符串。
2.安装CUDA
CUDA是作用于全局的,这里安装CUDA13.0
可以通过终端命令查看显卡驱动及其支持的最高CUDA版本
nvidia-smi
通过下述命令查看已经安装的CUDA软件版本(V大写)
nvcc -V
3.下载pytorch及其依赖
进入pytorch官网
https://pytorch.org/get-started/locally/
复制上述pip命令,在anaconda prompt中粘贴并回车。
等待安装完成。
可以通过下述命令查看当前虚拟环境下安装的包。
conda list
可以查看到安装的totch为2.8.0版本,及其支持的最低CUDA版本12.6
4.到ultralytics的github下载源代码
挂楼梯,下载并解压 ultralytics-main .zip
复制到自定义目录下,改名 ultralytics_SourceCode
使用anaconda prompt在虚拟环境nyolo下,进入该源代码的根目录,输入命令安装依赖
$ pip install -e .
等待下载依赖完毕。
5.准备工程和数据集
工程代码和数据集见上述"工程文件"章节和"数据集"章节
6.使用虚拟环境运行.py文件
启动虚拟环境。
打开VScode,在右下角将环境切换为nyolo
切换终端为命令行
终端运行于虚拟环境下:
python ./main.py
训练成功启动!
7.校验
使用detec.py和训练好的模型best.pt进行校验
from ultralytics import YOLOmodel = YOLO("D:/yolo/yolo_train_test2/best.pt")
results = model("D:/yolo/yolo_train_test2/test.jpg",project="result/")
results[0].save("output2.jpg") #导出带检测框的图片
待检测图片:
检测结果: