1

我正在遵循本指南而不进行任何更改。我正在使用带有深度学习 ami 的 aws 服务器:Deep Learning AMI (Ubuntu 18.04) Version 40.0

我试图将我的自定义数据集更改为 coco 数据集和自定义数据集的一小部分。批量大小似乎无关紧要,CUDA 和其他驱动程序似乎工作。

批处理开始训练过程时会引发异常。这是完整的堆栈跟踪:

Logging results to runs/train/exp66
Starting training for 5 epochs...

     Epoch   gpu_mem       box       obj       cls     total   targets  img_size
  0%|                                                                                                                                                                                                                 | 0/22 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "train.py", line 533, in <module>
    train(hyp, opt, device, tb_writer, wandb)
  File "train.py", line 298, in train
    pred = model(imgs)  # forward
  File "/usr/local/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/ubuntu/yolov5/models/yolo.py", line 121, in forward
    return self.forward_once(x, profile)  # single-scale inference, train
  File "/home/ubuntu/yolov5/models/yolo.py", line 137, in forward_once
    x = m(x)  # run
  File "/usr/local/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/ubuntu/yolov5/models/common.py", line 113, in forward
    return self.conv(torch.cat([x[..., ::2, ::2], x[..., 1::2, ::2], x[..., ::2, 1::2], x[..., 1::2, 1::2]], 1))
  File "/usr/local/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/home/ubuntu/yolov5/models/common.py", line 38, in forward
    return self.act(self.bn(self.conv(x)))
  File "/usr/local/lib/python3.8/site-packages/torch/nn/modules/module.py", line 889, in _call_impl
    result = self.forward(*input, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/torch/nn/modules/conv.py", line 399, in forward
    return self._conv_forward(input, self.weight, self.bias)
  File "/usr/local/lib/python3.8/site-packages/torch/nn/modules/conv.py", line 395, in _conv_forward
    return F.conv2d(input, weight, bias, self.stride,
RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED
4

3 回答 3

1

我不知道为什么,但似乎火炬 1.8 是建立在旧版本的 cuda 之上的。此外,由于 pytorch 有自己的 cuda,它似乎并不关心你的机器上有什么版本。更改手电筒版本(并匹配兼容的 tochvision)解决了我的问题。

在我的情况下,我做了如下:

  1. 更改了“requirements.txt”中的两行:

火炬==1.7.1

火炬视觉==0.8.2

  1. 使用 python=3.8 创建新的 conda 环境
  2. 激活环境
  3. 已修改文件的安装要求:

$ pip install -r requirements.txt

希望它对某人有帮助:)

于 2021-03-18T08:24:40.697 回答
0

我使用 conda 修复了它,我克隆了图像附带的 pytorch 环境,它运行良好。我仍然不知道原因。

于 2021-03-08T12:29:05.367 回答
0

我在尝试在脚本中训练 yolov5 时遇到了类似的情况。我发现升级到 torch==1.9.0 和 torchvision==0.10.0 也可以(如果您不想如上所述降级)

于 2021-06-21T06:03:51.120 回答