YOLO视觉检测应用入门篇 (二) 上一篇,我们介绍了YOLO最基础的训练和预测。 这一篇,我们稍微进阶一些。
device = 上一篇中,我们使用官方的sample模型,显然速度不算快。 因为我们使用的是device = cpu ,即仅使用cpu进行训练。 事实上,使用GPU训练才是主流。因为GPU对于卷积神经网络的计算是非常擅长的,比cpu擅长得多。 具体的原因,在了解YOLO的原理时,我们可以了解。 这里,我们只需要知道即可。 Yolo支持的device参数如下列所示:
1 2 3 4 5 device = 'cpu' device = 'mps' device = 0 device = [0 ,1 ]
MPS Apple的Silicon芯片设备可以使用device = mps来调用内存进行训练。 但是只有较小的数据集可以使用mps参数,因为数据集较大或者训练轮次过多,因为内存泄露的问题,训练过程会崩溃。 现象就是每一个轮次都会不断增加占用的内存,直至内存耗尽而报错。
WARN 截至2025年4月8日,YOLO对于MPS 设备(Apple Silicon Chip)依然存在内存泄漏问题没有解决。 详情查看Github Issue
CUDA
这个内容请在网上查找最新的安装CUDA教程 ,这里仅简单举例说明 运行以下命令,会提示可以安装的CUDA版本(向下兼容)
下面是网上找的一个示例,可见其支持的是CUDA 12.2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 nvidia-smi.exe Tue Jan 16 22:43:00 2024 +---------------------------------------------------------------------------------------+ | NVIDIA-SMI 537.70 Driver Version: 537.70 CUDA Version: 12.2 | |-----------------------------------------+----------------------+----------------------+ | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+======================+======================| | 0 NVIDIA GeForce RTX 4060 Ti WDDM | 00000000:01:00.0 On | N/A | | 32% 30C P8 7W / 160W | 990MiB / 8188MiB | 27% Default | | | | N/A | +-----------------------------------------+----------------------+----------------------+ +---------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=======================================================================================| | 0 N/A N/A 3200 C+G ...ekyb3d8bbwe\StoreExperienceHost.exe N/A |
从NVIDIA官方 下载CUDA 安装完成后,命令行输入以下命令验证
然后,将我们上一篇的sample再运行一次,是不是快多了?
AMD(ATI) GPU YOLO官方并没有支持AMD的GPU,因此我们不做详细的介绍。 如果需要使用AMD的GPU,可以参考WSL环境下的ROCm 方案或者DirectML 加速方案 刚入门的就简单使用CPU吧~
小结 这一篇主要介绍了训练中的device参数,使得训练能够更加的高效。 下一篇,我们将更加进阶一些。