环境:Ubuntu 18.04 +  Torch7 + cuda10

在运行使用cudnn的lua程序的时候产生错误:

/home/majiabiao/torch/install/bin/luajit: /home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: /home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: /home/majiabiao/torch/install/share/lua/5.1/cudnn/ffi.lua:: 'libcudnn (R5) not found in library path.
Please install CuDNN from https://developer.nvidia.com/cuDNN
Then make sure files named as libcudnn.so. or libcudnn..dylib are placed in
your library load path (for example /usr/local/lib , or manually add a path to LD_LIBRARY_PATH) Alternatively, set the path to libcudnn.so. or libcudnn..dylib
to the environment variable CUDNN_PATH and rerun torch.
For example: export CUDNN_PATH="/usr/local/cuda/lib64/libcudnn.so.5" stack traceback:
[C]: in function 'error'
/home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: in function 'require'
test.lua:: in main chunk
[C]: in function 'dofile'
...biao/torch/install/lib/luarocks/rocks/trepl/scm-/bin/th:: in main chunk
[C]: at 0x555bad5c4570

去我安装的cuda文件夹下查看:/usr/local/cuda-10.1/lib64,发现没有 libcudnn.so.5 or libcudnn.5.dylib而是libcudnn.so.7 libcudnn.so.7.5.0

根据错误信息查看文件/home/majiabiao/torch/install/share/lua/5.1/cudnn/ffi.lua

local libnames = {'libcudnn.so.5', 'libcudnn.5.dylib', 'cudnn64_5.dll'}
local ok = false
for i=,#libnames do
ok = pcall(function () cudnn.C = ffi.load(libnames[i]) end)
if ok then break; end
end if not ok then

将'libcudnn.so.5', 'libcudnn.5.dylib'修改为'libcudnn.so.7', 'libcudnn.7.dylib'结果变为以下错误

/home/majiabiao/torch/install/bin/luajit: /home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: /home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: /home/majiabiao/torch/install/share/lua/5.1/cudnn/ffi.lua:: These bindings are for CUDNN .x ( <= cudnn.version > ) , while the loaded CuDNN is version:
Are you using an older or newer version of CuDNN?
stack traceback:
[C]: in function 'error'
/home/majiabiao/torch/install/share/lua/5.1/trepl/init.lua:: in function 'require'
test.lua:: in main chunk
[C]: in function 'dofile'
...biao/torch/install/lib/luarocks/rocks/trepl/scm-/bin/th:: in main chunk
[C]: at 0x561e50b7e570

那么之前那个找不到libcudnn.so.5 or libcudnn.5.dylib的错误的原因是不兼容某些版本的cudnn,只兼容5005到6000之间的版本

那么如果使用的是不兼容版本的cudnn,那么就在现有cuda的基础上更改cudnn的版本,只需要替换一些文件

去nvidia官网下载将要使用的版本的cudnn,解压出来的文件夹cuda中有两个文件夹include和lib64

#删除原有版本的cudnn(注意你的文件夹是否是这个路径)
sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
#将下载好的新的版本的cudnn文件放到刚才删除的文件所在位置:
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/
#cd到/usr/local/cuda/lib64/文件夹下,建立软链接(注意版本号换成你自己的)
sudo chmod +r libcudnn.so.5.0.
sudo ln -sf libcudnn.so.5.0. libcudnn.so.
sudo ln -sf libcudnn.so. libcudnn.so
sudo ldconfig

之后就可以了

libcudnn (R5) not found in library path的更多相关文章

  1. java如何修改java.library.path并且不重启jvm也能生效

    先说一下需求吧, 目前在用JCEF实现java程序桌面版包装,源码中需要加载编译好的几个dll文件,而这些文件的路径必然是根据程序安装的路径而变化的,这就需要在程序运行的时候,去动态修改java.li ...

  2. no leveldbjni64-1.8 in java.library.path

    在抽取以太坊Java版本的Trie树部分时,遇到了一个问题: Exception in thread "main" java.lang.UnsatisfiedLinkError: ...

  3. paip.-Djava.library.path -Djava.ext.dirs= 的区别

    paip.-Djava.library.path  -Djava.ext.dirs= 的区别 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专 ...

  4. no sigar-amd64-winnt.dll in java.library.path 错误

    需要维护别人写的一个WEB项目,还原数据库,从SVN中检出源码,运行,提示如下错误: 5526 [localhost-startStop-1] DEBUG Sigar  - no sigar-amd6 ...

  5. Linux: Set OR Change The Library Path

    Linux: Set OR Change The Library Path by NIX CRAFT on APRIL 9, 2010 · 3 COMMENTS· LAST UPDATED AUGUS ...

  6. 关于Tomcat启动时报The APR based Apache Tomcat Native library which allows optimal performanc e in production environments was not found on the java.library.path

    错误信息如下 八月 01, 2016 10:11:15 上午 org.apache.catalina.core.AprLifecycleListener initINFO: The APR based ...

  7. Error: java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path

    Error Message When compiling or executing a Java application that uses the ArcObjects Java API, the ...

  8. no ocijdbc11 in java.library.path linux

    no ocijdbc11 in java.library.path linux vi /etc/profile export ORACLE_HOME=/oracle/database/oracle/p ...

  9. java出现no XXX in java.library.path的解决办法及eclipse配置

    java一般使用两个path:classpath 和 java.library.path classpath是指向jar包的位置 java.library.path是非java类包的位置如(dll,s ...

随机推荐

  1. D. Destruction of a Tree_dfs序_性质分析_思维题

    题意: 给定一棵树,每次可以拆掉一个树上度数为偶数的点,拆掉该点后,与该点所连的所有边都会被删掉.问,是否有一种删点顺序可以删掉所有的点.如果有,则输出任意一组解. 数据范围:线性做法 O(n)O(n ...

  2. php版本过低错误导致的laravel 错误:Illuminate\Foundation\helpers.php on line 233; syntax error, unexpected '?'

    今天运行laravel项目发现出现错误: Parse error: syntax error, unexpected '?'  ..\vendor\laravel\framework\src\Illu ...

  3. CF833B The Bakery (线段树+DP)

    题目大意:给你一个序列(n<=35000),最多分不大于m块(m<=50),求每个块内不同元素的数量之和的最大值 考试的时候第一眼建图,没建出来,第二眼贪心 ,被自己hack掉了,又随手写 ...

  4. python中方法与函数的区别与联系

    今天huskiesir在对列表进行操作的时候,用到了sorted()函数,偶然情况下在菜鸟教程上看到了内置方法sort,同样都可以实现我对列表的排序操作,那么方法和函数有什么区别和联系呢? 如下是我个 ...

  5. 《你又怎么了我错了行了吧》【Beta】Scrum Meeting 2

    第二天 日期:2019/6/25 前言: 第2次会议在女生宿舍召开 确认编码阶段已经完成,继续测试项目 1.1 今日完成任务情况以及明日任务安排 姓名 当前阶段任务 下一阶段任务 刘 佳 完善了未开发 ...

  6. Selenium:简单的尝试一下

    一.创建maven工程引入依赖 1)创建项目 创建一个简单的maven工程即可 这里我使用jar项目进行简单的演示 2)引入依赖 <dependencies> <dependency ...

  7. C# 实现窗口程序winform像QQ一样靠近桌面边缘自动隐藏窗口

    实现原理: 实现这个功能的原理步骤如下: 1.判断窗体程序是否靠近桌面边缘: 2.获取桌面屏幕大小与窗体程序大小: 3.把窗体程序显示在桌面以外隐藏起来,预留部分窗体方便用户拉出程序: 4.判断鼠标是 ...

  8. 样本方差的无偏估计与(n-1)的由来

    一.无偏估计 所谓总体参数估计量的无偏性指的是,基于不同的样本,使用该估计量可算出多个估计值,但它们的平均值等于被估参数的真值. 在某些场合下,无偏性的要求是有实际意义的.例如,假设在某厂商与某销售商 ...

  9. tp框架引入第三方sdk的经验总结

    tp框架开发常用到第三方的接口,这时候需要引入第三方的sdk.例如:微信扫码支付sdk,阿里大于的淘宝sdk等等 首先到官网上下载对应php的sdk文件,通常会有至少一个实例代码. 1 新建一个控制器 ...

  10. codevs 1803 志愿者招募

    1803 志愿者招募 2008年NOI全国竞赛  时间限制: 2 s 空间限制: 128000 KB 题目等级 : 大师 Master   题目描述 Description 申奥成功后,布布经过不懈努 ...