• Windows下卸载重装CUDA和CUDnn_解决pycharm无法加载CUDA动态库的问题


    笔者在跑训练的时候,用的是tensorflow-gpu==2.6.0,经过查询资料,需要匹配11.2版本的CUDA

    注:

    1. 查看本机已安装的CUDA版本的命令行指令:nvcc -V
    2. 查看本机显卡最高支持的CUDA版本的命令行指令:nvidia-smi
      也可以直接打开nvidia控制面板→帮助→系统信息→组件,就可以看到了:
      请添加图片描述
      在这里插入图片描述
      可以看到笔者的显卡驱动是最高支持CUDA11.5版本,所以完全可以支持CUDA11.2

    BUT❗️ 笔者电脑已经安装了10.2版本的CUDA,因此需要把现有版本的CUDA卸载,然后重新安装CUDACUDnn

    step1. 卸载CUDA

    1. 打开控制面板→程序→程序卸载
    2. 卸载与CUDA10.2版本相关的四个程序:
      NVIDIA CUDA Samples 10.2
      NVIDIA CUDA Runtime 10.2
      NVIDIA CUDA Documentation 10.2
      nvidia cuda dEVELOPMENT 10.2

    参考:windows下CUDA的卸载以及安装
    注:笔者只参考了本文中的卸载部分。

    step2. 安装CUDACUDnn

    笔者安装的是CUDA11.2.0版本的CUDA,以及相应版本的CUDnn(官网上Windows系统且CUDA是11.x版本的只对应一个CUDnn,下载它就好啦)

    参考:CUDA和CUDNN的安装(带有详细步骤)

    注:安装完成后,用nvcc -V测试是否安装好时,一定要重启命令行!不要在安装之间就已经打开的命令行窗口输入命令,否则你会遇到nvcc不是内部操作的迷之错误中而自我怀疑。当你重新打开命令行,再次输入,就会发现,其实已经安装成功啦
    在这里插入图片描述
    📗Debug经验+1:重启可以解决很多奇怪的问题😆。

    step3. Tensorflow-gpu安装

    这个帖子中可以找到对应版本的TensorFlow:2021最新:TensorFlow各个GPU版本CUDA和cuDNN对应版本整理(最简洁)

    由于笔者已经确定要用tensorflow-gpu==2.6.0,因此在对应的虚拟环境中安装:

    pip install tensorflow-gpu==2.6.0 --default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple
    
    • 1

    通过更换清华源,可以更快地下载,避免报错。

    安装完成后,检查是否安装成功(即:检查TensorFlow是否可以用gpu了)

    python
    import tensorflow as tf
    tf.config.list_physical_devices('GPU')
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    📗Debug经验之不要同时安装tensorflow(CPU版本)和tensorflow-gpu(GPU版本),否则,会出现各种错误。

    安装完成,GPU可以用了,cmd中执行正常,but pycharm❓

    💢pycharm,你怎么回事?

    运行代码时,报错Could not load dynamic library ‘...dll‘,一连报一大串,属实难受哇,这个报错让笔者困扰了好久。你如果去搜索,几乎会看到的大部分解决思路无外乎两种:

    • 错误思路一:缺啥补啥
      绝大部分帖子都在用缺啥补啥的思路告诉你怎么去下载丢失的包。

    📝笔者的解答:

    如果你属于:无法使用gpu,即CUDACUDnn没有安装成功,那应该参考笔者前面提到的步骤,去正规下载!
    🙈
    注意留意一下CUDnn的安装步骤,因为这一步涉及到替换CUDA的bin目录,而dll文件正保存在此地。

    但是!如果你的CUDACUDnn已经安装好了,也分两种情况:

    1. CUDA版本不匹配导致的报错:你安装的是CUDA10.X,而报错缺失的动态包是关于CUDA11.x的,那么你就应该卸载重装CUDA和CUDnn(可以参考上方写出的step1~3)。

      单纯靠缺啥补啥逃避卸载是没用的,伙计!因为笔者是过来人,尝试过这种蠢办法😢。

    2. 如果CUDA版本没有问题,是完全不用去补.ddl文件的。

      你可以去安装好的CUDAbin目录,看看是否这些包都已经存在。如果存在,说明你没错。

      如果你用cmd在命令行中可以正确使用gpu,那就说明你的操作没问题。这是pycharm自身的锅:它没有能够链接到CUDAbin路径下

    • 错误思路二:掩耳盗铃

      一些帖子教你如何通过设置指令,从而忽略警告。

    📝笔者的解答:

    笔者看来,这个警告等同于报错,因为它会影响程序能否正常执行)。
    良好的正确的环境是成功之基!配置环境这部分重视起来了,代码就成功一半了!千万要好好配置!否则,你会遇到特别特别多奇怪的bug。

    📝
    翻阅大量资料,读到Anaconda虚拟环境下的PyCharm使用Tensorflow调用GPU出现dll文件缺失的问题和解决办法时,笔者看到了希望👍!这篇文章准确地 (ma)出了笔者的心声,也为笔者指出了最终解除报错的方法。最终参考的也正是文中作者所参考的帖子:PyCharm DLL load failed的原因和对治方法

    例如:笔者根据自己电脑的情况,打开anaconda prompt→输入start+pycharm.exe所在路径:start C:\"Program Files"\"NVIDIA GPU Computing Toolkit"\CUDA\v11.2\bin\pycharm64.exe。再次打开就不会出现这个报错了。


    晚安~

  • 相关阅读:
    从0安装部署Javaweb项目
    电子方案开发——智能跳绳方案
    身份证测试图片
    【C++系列】STL容器——vector类的例题应用(12)
    Spring MVC 五 - DispatcherServlet初始化过程(续)
    React 窗口防抖_ 提升网页性能的利器
    爬虫基础—代理的基本原理
    [python]pip安装requiements.txt跳过错误包继续安装
    全网最新版的超详细的xxl_job教程(2023年),以及解决“调度失败:执行器地址为空”的问题
    迎难而上,做云原生时代的弄潮儿:搞定 Kubernetes
  • 原文地址:https://blog.csdn.net/qq_44250700/article/details/125551130