用户警告:针对 CuDNN 问题应用了解决方法,安装 nvrtc.so

问题描述 投票:0回答:2

我正在下面训练一个卷积神经网络。

def __init__(self, n_channels, n_classes):
    super().__init__()
    self.model = models.mobilenet_v3_large(pretrained=True)
    self.model.classifier[-1] = nn.Linear(1280, n_classes)
    self.model.features[0][0] = nn.Conv2d(
        n_channels,
        16,
        kernel_size=(3, 3),
        stride=(2, 2),
        padding=(1, 1),
        bias=False,
    )

警告中只有另一件事是

返回F.conv2d(输入,权重,偏差,self.stride,

我不知道这个警告是什么以及我能做什么。如果需要有关系统的任何信息,我可以编辑问题并添加到其中。

pytorch conv-neural-network
2个回答
19
投票

这似乎是

pytorch 2.0.x+cu118
中 CUDA 库的问题。有几个可能的修复方法。

  1. 降级到之前的 CUDA 库 cu117。例如。与点:
pip3 uninstall pytorch
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117) 
  1. 要继续使用 cu118,请在 torch 包库中创建符号链接。
cd venv/python3.10/site-packages/torch/lib  # (or the path to dist-packages/torch/lib, depending on how you installed pytorch)

ln -s libnvrtc-*.so.11.2 libnvrtc.so

或者,您应该能够忽略该警告;它不应该有任何副作用或影响。

我在这个 GitHub 问题中找到了上述解决方案,以及对该问题的更深入的讨论。


0
投票

对于我来说,使用 Windows 11 + WSL,我必须执行以下步骤:

首先,我访问 NVIDIA 的网站下载 Ubuntu 版的 CuDNN(https://developer.nvidia.com/rdp/cudnn-archive)。登录后,我的浏览器自动开始下载它,但我可以选择从正在进行的下载中复制完整的下载链接。时间挺长的。

然后,在我的 Ubuntu 终端 (WSL) 上输入以下内容以下载 deb 软件包(请将长链接替换为您在上面步骤中复制的内容):

wget -O cudnn-local-repo.deb “https://developer.download.nvidia.com/compute/cudnn/secure/8.9.7/local_installers/12.x/cudnn-local-repo-ubuntu2 204-8.9.7.29_1.0-1_amd64.deb?Wr2dTCzXY1M3FuHmuQIxUK9phLLYKkG8BCndRJ4TPwJPO3R_E9SAiojXcPKK7ivtaPbHXj49L1MqhjqfQKyu ZF7B33dx5y8XDUz96_EPovRBytbRIwyNgSsNzQNxHoTeUQXrMCCGkogKQ8yADLABUQb4eIoO0HcuSDrKwbdKJvDHVJ-NboNM3kr9DGkQkULGJ82o yQEM2vO_b51L7LN91DboWEo=&t=eyJscyI6IndlYnNpdGUiLCJsc2QiOiJkZXZlbG9wZXIubnZpZGlhLmNvbS9yZHAvY3Vkbm4tYXJjaGl2ZSJ9"

下载完成后,我是这样安装CuDNN的:

sudo dpkg -i cudnn.deb

该命令未能告诉我在继续之前将证书复制到某个路径: sudo cp /var/cudnn-local-repo-/cudnn-local--keyring.gpg /usr/share/keyrings/

然后我重试:

sudo dpkg -i cudnn.deb sudo apt-get 更新 sudo apt-get 安装 libcudnn8 sudo apt-get install libcudnn8-dev

现在我需要将已安装的文件之一复制到与 pyenv 一起使用的特定 python 中。我不知道它在哪里,所以我使用这个命令找到它:

sudo find / -name“libnvrtc*”

我了解到我需要的文件是: 〜/.pyenv/versions/3.10.15/lib/python3.10/site-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so.11.2

我只需要一个名为 libnvrtc.so 的文件,而不是 libnvrtc.so.11.2,所以我创建了一个符号链接:

ln -s ~/.pyenv/versions/3.10.15/lib/python3.10/site-packages/nvidia/cuda_nvrtc/lib/libnvrtc.so.11.2 libnvrtc.so

此后,当我再次尝试我想要的程序时,警告“Applied workaround for CuDNN issues, install nvrtc.so”消失了。

© www.soinside.com 2019 - 2024. All rights reserved.