AYO_YO 2022-01-15 21:21 采纳率: 100%
浏览 2430
已结题

YOLO v5训练使用CPU正常,使用GPU训练 box cls obj均为nan

现象描述

如下图所示,使用CPU训练yolov5模型时boxclsobj等各项数据基本都正常,可以正常训练。训练得到的模型也可以正常用于推理。

image-20220115203633692

使用GPU训练如下图所示,boxclsobj一直为nan,其余等数据有数据,但数据也不正常。

image-20220115203919483

train.py中的关键代码

数据集用的官方给的cocococo128都一样

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)')

环境

尝试多种环境搭配,均无果。

  • 系统:Windows11Ubuntu 20.04.3 LTS
  • CPU及显卡:i7-11390HMX450
  • Python:3.8.123.7
  • NVIDIA 及CUDA:511.23 + 11.6(仅Windows11)495 + 11.5470 + 11.4460 + 11.3(仅Ubuntu)
  • PyTorch:1.10.1+cu11.31.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装的Pytorchconda装的Pytorch都一样。

  • 更换操作系统以及相关驱动版本

    由于Windows11不支持早期的CUDA版本,又装了一个Ubuntu 20.04,折腾了好几个版本的驱动也都不行

操作系统也换了,各种版本也试了,

现在基本怀疑是显卡的问题,用MX450 2GB训练垃是垃了点,但跑应该还是能跑,我见了一个博主用的MX350都还能跑:joy:。

因此,在此请教我在环境配置上还有没有什么疏漏:joy:,再排查排查。

准备正儿八经开始搞了,整个大点的数据集,今天下午用coco数据集尝试了一下,118287张图,19GB,用CPU一下午就训练了3轮,按照之前的训练速度,MX450的训练速度大概是i7-11390H的10倍,看了一下雷电4显卡坞,再加一个显卡,够再买半个电脑了,要是不行的话,只能靠CPU慢慢磨了!

  • 写回答

2条回答 默认 最新

  • AYO_YO 2022-01-17 12:59
    关注

    解决了,既然锁定问题出在显卡上,在坚信不是硬件问题的前提下,只能一遍一遍换驱动版本。

    刚开始用的最早的驱动版本是11.3,pytorch支持的另一个cuda版本10.2 nvidia官网不支持windows11和Ubuntu 20.04。

    然后我突然想起来Ubuntu直接apt install cuda-toolkit的版本是10.几,抱着试一试的心态果然成了。

    至于新版本的cuda为什么对mx450支持这么差,我猜可能黄老板打死也没有想到会有人用轻薄本做训练和推理。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月28日
  • 已采纳回答 1月20日
  • 创建了问题 1月15日

悬赏问题

  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错