使用conda安装了cudatoolkit11.7和cudnn8.6, paddle却报错:Cannot load cudnn shared library. Cannot invoke method

2023-11-08

问题来源

近日,使用paddle官方的conda安装命令安装最新版的paddle

conda install paddlepaddle-gpu==2.4.1 cudatoolkit=11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge

命令安装了paddle的GPU版需要的cudatoolkit=11.7和cudnn8.6和一些依赖包。
在这里插入图片描述
但是,在python交互界面运行paddle.utils.run_check()却出现了错误

Running verify PaddlePaddle program ...
W0114 22:09:11.388418 103110 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 8.6, Driver API Version: 11.7, Runtime API Version: 11.7
W0114 22:09:11.388692 103110 dynamic_loader.cc:307] The third-party dynamic library (libcudnn.so) that Paddle depends on is not configured correctly. (error code is /usr/local/cuda/lib64/libcudnn.so: cannot open shared object file: No such file or directory)
  Suggestions:
  1. Check if the third-party dynamic library (e.g. CUDA, CUDNN) is installed correctly and its version is matched with paddlepaddle you installed.
  2. Configure third-party dynamic library environment variables as follows:
  - Linux: set LD_LIBRARY_PATH by `export LD_LIBRARY_PATH=...`
  - Windows: set PATH by `set PATH=XXX;
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/utils/install_check.py", line 269, in run_check
    _run_static_single(use_cuda, use_xpu, use_npu)
  File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/utils/install_check.py", line 173, in _run_static_single
    exe.run(startup_prog)
  File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/executor.py", line 1463, in run
    six.reraise(*sys.exc_info())
  File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/six.py", line 719, in reraise
    raise value
  File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/executor.py", line 1450, in run
    res = self._run_impl(program=program,
  File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/executor.py", line 1661, in _run_impl
    return new_exe.run(scope, list(feed.keys()), fetch_list,
  File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/executor.py", line 631, in run
    tensors = self._new_exe.run(scope, feed_names,
RuntimeError: In user code:

    File "<stdin>", line 1, in <module>

    File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/utils/install_check.py", line 269, in run_check
      _run_static_single(use_cuda, use_xpu, use_npu)
    File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/utils/install_check.py", line 159, in _run_static_single
      input, out, weight = _simple_network()
    File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/utils/install_check.py", line 33, in _simple_network
      weight = paddle.create_parameter(
    File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/layers/tensor.py", line 152, in create_parameter
      return helper.create_parameter(attr, shape, convert_dtype(dtype), is_bias,
    File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/layer_helper_base.py", line 381, in create_parameter
      self.startup_program.global_block().create_parameter(
    File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/framework.py", line 3965, in create_parameter
      initializer(param, self)
    File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/initializer.py", line 56, in __call__
      return self.forward(param, block)
    File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/initializer.py", line 184, in forward
      op = block.append_op(type="fill_constant",
    File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/framework.py", line 4017, in append_op
      op = Operator(
    File "/root/miniconda3/envs/py310/lib/python3.10/site-packages/paddle/fluid/framework.py", line 2858, in __init__
      for frame in traceback.extract_stack():

    PreconditionNotMetError: Cannot load cudnn shared library. Cannot invoke method cudnnGetVersion.
      [Hint: cudnn_dso_handle should not be null.] (at /paddle/paddle/phi/backends/dynload/cudnn.cc:60)
      [operator < fill_constant > error]

,所以令人疑惑的是我明明在虚拟环境中安装了cudnn,但是paddle却不能找到cudnn库的位置。

查找问题

conda安装cuda和cudnn后文件保存在conda的虚拟环境的libinclude目录下,运行命令

cd ~/miniconda3/envs/py310
ls lib/ | grep cudnn 
ls include/ | grep cudnn

查找到了cudnn的运行库和头文件,可见cudnn确实安装成功了。
在这里插入图片描述
在这里插入图片描述

猜想

猜测是环境变量没有弄好,运行

echo $PATH
echo $LD_LIBRARY_PATH

发现果然没有包含conda安装的cudnn的动态链接库和头文件的路径
在这里插入图片描述
值得注意的是/usr/local/cuda/lib/等路径是直接安装英伟达官网提供cuda安装包的安装路径,后面觉得太占磁盘空间了(11G),就卸载了。想使用conda安装cudatoolkit和cudnn。
安装cuda在系统会容易,占空间

解决办法

将conda虚拟环境的libinclude路径添加到conda虚拟环境的环境变量中。使用命令

conda env config vars set LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/miniconda3/envs/py310/include:/root/miniconda3/envs/py310/lib

这里的conda env config vars set 会将系统的$LD_LIBRARY_PATH环境变量覆写,且只影响当前的py310虚拟环境。
然后,退出当前虚拟环境并重新进入

conda deactivate
conda activate py310

再次运行

import paddle
paddle.utils.run_check()

可以看到paddle识别出了cudnn,可以正常使用了
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用conda安装了cudatoolkit11.7和cudnn8.6, paddle却报错:Cannot load cudnn shared library. Cannot invoke method 的相关文章

  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • Virtualenv 在 OS X Yosemite 上失败并出现 OSError

    我最近更新到 OSX Yosemite 现在无法使用virtualenv pip 每当我执行 virtualenv env 它抛出一个 OSError Command Users administrator ux env bin pytho
  • 将非常大的Python列表输出保存到mysql表中

    我想将 python 生成的列表的输出保存在 mysql 数据库的表中 该表如下所示 mysql 中的 myapc8 表 https i stack imgur com 4B4Hz png这是Python代码 在此输入图像描述 https
  • 反编译Python 3.9.2的PYC文件[重复]

    这个问题在这里已经有答案了 目前 我有一个 3 9 2 版本的 python 的 PYC 文件 P S 这适用于所有 3 9 及更高版本 我正在尝试反编译 PYC 文件 但它显示错误 因为 uncompyle6 或者更确切地说 新版本 de
  • 使用 Django 将文件异步上传到 Amazon S3

    我使用此文件存储引擎在上传文件时将文件存储到 Amazon S3 http code welldev org django storages wiki Home http code welldev org django storages w
  • 使用python从gst管道抓取帧到opencv

    我在用着OpenCV http opencv org 和GStreamer0 10 我使用此管道通过自定义套接字通过 UDP 接收 MPEG ts 数据包sockfd由 python 提供并显示它xvimagesink 而且效果很好 以下命
  • 在 python pandas 中,如何保存“网格图”?

    我对 pandas 绘图工具很陌生 在文档中 以下命令非常方便 myplot rts ret hist bins 50 by rts primary mic 然而 当我尝试从图中获取图形参考并保存它时 问题就出现了 myfigure myp
  • Python Anaconda:如何测试更新的库是否与我现有的代码兼容?

    我在 Windows 7 机器上使用 Python 2 7 Anaconda 安装进行数据分析和科学计算 当新的库发布时 例如新版本的 pandas patsy 等 您建议我如何测试新版本与现有代码的兼容性 是否可以在同一台机器上安装两个
  • 使用 for 循环创建一系列元组

    我已经搜索过 但找不到答案 尽管我确信它已经存在了 我对 python 很陌生 但我以前用其他语言做过这种事情 我正在以行形式读取数据文件 我想将每行数据存储在它自己的元组中 以便在 for 循环之外访问 tup i inLine wher
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • 如何查找或安装适用于 Python 的主题 tkinter ttk

    过去 3 个月我一直在制作一个机器人 仅用代码就可以完美运行 现在我的下一个目标是为它制作一个 GUI 但是我发现了一些障碍 主要的一个是能够看起来不像一个 30 年前的程序 我使用的是 Windows 7 我仅使用 Python 3 3
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • Python 中维基百科 API 中的 DisambiguationError 和 GuessedAtParserWarning

    我想获得维基百科与搜索词相关的可能且可接受的名称列表 在这种情况下是 电晕 当输入以下内容时 print wikipedia summary Corona 这给出了以下输出 home virej local lib python3 8 si
  • 在Raspberry pi上升级skimage版本

    我已经使用 Raspberry Pi 2 上的 synaptic 包管理器安装了 python 包 然而 skimage 模块版本 0 6 是 synaptic 中最新的可用版本 有人可以指导我如何将其升级到0 11 因为旧版本中缺少某些功
  • 使用另一个数据帧在数据帧中创建子列

    我对 python 和 pandas 很陌生 在这里 我有一个以下数据框 did features offset word JAPE feature manual feature 0 200 0 aa 200 200 0 200 11 bf
  • XPath:通过当前节点属性选择当前和下一个节点的文本

    首先 这是从我之前的问题 https stackoverflow com questions 5202187 xpath select current and next nodes text by current node attribut
  • 如何在亚马逊 EC2 上调试 python 网站?

    我是网络开发新手 这可能是一个愚蠢的问题 但我找不到可以帮助我的确切答案或教程 我工作的公司的网站 用 python django 构建 托管在亚马逊 EC2 上 我想知道从哪里开始调试这个生产站点并检查存储在那里的日志和数据库 我有帐户信
  • AWS Lambda 不读取环境变量

    我正在编写一个 python 脚本来查询 Qualys API 中的漏洞元数据 我在 AWS 中将其作为 lambda 函数执行 我已经在控制台中设置了环境变量 但是当我执行函数时 出现以下错误 module initialization
  • 如何使用 python 定位和读取 Data Matrix 代码

    我正在尝试读取微管底部的数据矩阵条形码 我试过libdmtx http libdmtx sourceforge net 它有 python 绑定 当矩阵的点是方形时工作得相当好 但当矩阵的点是圆形时工作得更糟 如下所示 另一个复杂问题是在某
  • IndexError - 具有匀称形状的笛卡尔 PolygonPatch

    我曾经使用 shapely 制作一个圆圈并将其绘制在之前填充的图上 这曾经工作得很好 最近 我收到索引错误 我将代码分解为最简单的操作 但它甚至无法执行最简单的循环 import descartes import shapely geome

随机推荐

  • 【JAVASCRIPT】javascript随机生成颜色8种方法

    实现1 JavaScript代码 var getRandomColor function return function color return color 0123456789abcdef Math floor Math random
  • FFMPEG常用命令

    FFmpeg编码和支持 FFmpeg源代码中包含的编码格式很多 常见不常见的都可以在编译皮质列表中见到 可以通过的编译配置命令 configure list encoders 常见的编码器的格式有 AAC AC3 H 264 H 265 M
  • Qt中连接两个字符串,并在其中添加换行符

    Qt中连接两个字符串 并在其中添加换行符 在Qt中想要将两个字符串连接在一起 只需要在两个字符串之间加入 即可 输出显示即为两个字符串连在一起 如果想在字符串后面加入换行符 然后再连接另一个字符串 直接在字符串后面添加 n 是行不通的 这里
  • SMIL 直播协议

    Synchronized Multimedia Integration Language SMIL sma l is a World Wide Web Consortium recommended Extensible Markup Lan
  • js实现表格排序

    用js实现表格排序 第一点击以降序排列 第二次点击以升序排列 html代码 table border 1 tr th 学号 th th 名字 th th 成绩 th tr tr td 100 td tr table
  • 自建minio实现doris的快速备份与恢复

    一 概述 doris支持通过腾讯云bos 阿里云oss hdfs实现备份与恢复 但是我们公司doris部署在线下机房 如采用oss bos 大数据备份与恢复比较慢 会占用一定的带宽 如采用hdfs 担心小文件太多影响现有的hadoop集群
  • java基础总结——java面向对象讲解

    Java面向对象 对象的概念及面向对象的三个基本特征 对象的概念 Java 是面向对象的编程语言 对象就是面向对象程序设计的核心 所谓对象就是真实世界中的实体 对象与实体是一一对应的 也就是说现实世界中每一个实体都是一个对象 它是一种具体的
  • Python 进阶知识

    初级选手 Python 基础知识 Aimin20210819的博客 CSDN博客 python动态实例化对象 目录 1 Python简写法 2 Python三元运算符 3 Python获取路径和重名文件
  • 编程式事务

    Resource private TransactionTemplate transactionTemplate transactionTemplate execute transactionStatus gt List
  • Ubuntu安装Redis

    安装环境 Ubuntu 18 04 64位 一 安装 1 1 更新仓库 非必须 sudo apt update 1 2 使用 apt 从官方 Ubuntu 存储库来安装 Redis sudo apt get install redis se
  • 矩阵乘法实现卷积运算

    利用Matrix Multiplication实现Convolutions 以feature map channel 1 stride 1 padding 0为例 解决 1 如何将feature map和 filter kernel进行un
  • 原子指标和衍生/派生指标

    按照个人的理解 不加任何修饰词的指标就是原子指标 也叫度量 一般存在于olap表中 例如订单量 用户量的等等 而在原子指标上进行加减乘除或者修饰词的限定等等都是派生指标 衍生 派生指标 原子指标 时间周期 修饰词 例如 近7天订单量 近7天
  • mysql merge 引擎_【Mysql 学习】MERGE存储引擎(一)

    MERGE存储引擎 一 MERGE表的问题 MERGE存储引擎 也被认识为MRG MyISAM引擎 是一个相同的可以被当作一个来用的MyISAM表的集合 相同 意味着所有表同样的列和索引信息 你不能合并列被以不同顺序列于其中的表 没有恰好同
  • Java面试题库,极客时间百度云盘百度网盘

    一 基础知识 比较简单的一些基础入门 二 微服务构建 Spring boot 三 服务治理 Spring Cloud Euraka 四 客户端负载均衡 Spring Cloud Ribbon 五 服务器容错保护 Spring Cloud H
  • 全国计算机等级考试题库二级C操作题100套(第80套)

    第80套 给定程序中 函数fun的功能是 将形参n中 各位上为偶数的数取出 并按原来从高位到低位的顺序组成一个新的数 并作为函数值返回 例如 从主函数输入一个整数 27638496 函数返回值为 26846 请在程序的下划线处填入正确的内容
  • BT 种子 tracker 磁链

    磁链 磁链是什么 传统的种子和磁链的区别 https baike baidu com item E7 A3 81 E5 8A 9B E9 93 BE E6 8E A5 5867775 在使用迅雷时 磁链会先下载一个种子文件 然后才开始下载正
  • 执行hexo d部署到github出错

    我的github已经配置了ssh key 并且执行 ssh T git github com能连接到github 但是在我执行hexo d想要将博客部署到github却出错了 利用http localhost 4000 访问本地发现已经部署
  • 服务器安装msyql成功后没有密码无法进入mysql的解决方法

    服务器安装免安装版MySQL成功后遇到的问题 服务器安装msyql成功后没有密码无法进入mysql的解决方法 今天在远程服务器上安装MySQL数据库 本来安装好了 可是登录时一直都是需要密码 在网上也找到相应的方法 在my ini文件中的
  • Linux系统看门狗应用编程

    目录 看门狗应用编程介绍 打开设备 获取设备支持哪些功能 WDIOC GETSUPPORT 获取 设置超时时间 WDIOC GETTIMEOUT WDIOC SETTIMEOUT 开启 关闭看门狗 WDIOC SETOPTIONS 喂狗 W
  • 使用conda安装了cudatoolkit11.7和cudnn8.6, paddle却报错:Cannot load cudnn shared library. Cannot invoke method

    问题来源 近日 使用paddle官方的conda安装命令安装最新版的paddle conda install paddlepaddle gpu 2 4 1 cudatoolkit 11 7 c https mirrors tuna tsin