现象描述
如下图所示,使用CPU训练yolov5
模型时box
,cls
,obj
等各项数据基本都正常,可以正常训练。训练得到的模型也可以正常用于推理。
使用GPU训练如下图所示,box
,cls
,obj
一直为nan
,其余等数据有数据,但数据也不正常。
train.py中的关键代码
数据集用的官方给的coco
、coco128
都一样
parser.add_argument('--weights', type=str, default=ROOT / 'yolov5s.pt', help='initial weights path')
parser.add_argument('--batch-size', type=int, default=4, help='total batch size for all GPUs, -1 for autobatch')
parser.add_argument('--imgsz', '--img', '--img-size', type=int, default=320,
help='train, val image size (pixels)')
parser.add_argument('--workers', type=int, default=4, help='max dataloader workers (per RANK in DDP mode)')
环境
尝试多种环境搭配,均无果。
- 系统:
Windows11
、Ubuntu 20.04.3 LTS
- CPU及显卡:
i7-11390H
、MX450
- Python:
3.8.12
、3.7
- NVIDIA 及CUDA:
511.23 + 11.6(仅Windows11)
、495 + 11.5
、470 + 11.4
、460 + 11.3(仅Ubuntu)
- PyTorch:
1.10.1+cu11.3
、1.9+cu11.3
(pytorch) PS C:\Users\16584> conda --version
conda 4.10.3
(pytorch) PS C:\Users\16584> python --version
Python 3.8.12
(pytorch) PS C:\Users\16584> nvidia-smi
Sat Jan 15 20:51:34 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 511.23 Driver Version: 511.23 CUDA Version: 11.6 |
|-------------------------------+----------------------+----------------------+
| 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 ... WDDM | 00000000:01:00.0 Off | N/A |
| N/A 39C P8 N/A / N/A | 0MiB / 2048MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
In [2]: torch.__version__
Out[2]: '1.10.1+cu113'
初步思路
重装环境
环境重装了,以及
PyPi
装的Pytorch
和conda
装的Pytorch
都一样。更换操作系统以及相关驱动版本
由于
Windows11
不支持早期的CUDA
版本,又装了一个Ubuntu 20.04
,折腾了好几个版本的驱动也都不行
操作系统也换了,各种版本也试了,
现在基本怀疑是显卡的问题,用MX450 2GB
训练垃是垃了点,但跑应该还是能跑,我见了一个博主用的MX350
都还能跑:joy:。
因此,在此请教我在环境配置上还有没有什么疏漏:joy:,再排查排查。
准备正儿八经开始搞了,整个大点的数据集,今天下午用coco
数据集尝试了一下,118287张图,19GB,用CPU一下午就训练了3轮,按照之前的训练速度,MX450
的训练速度大概是i7-11390H
的10倍,看了一下雷电4显卡坞,再加一个显卡,够再买半个电脑了,要是不行的话,只能靠CPU慢慢磨了!