import tensorflow 出错libcudnn.so.6: cannot open shared object file: No such file or directory

在安装完tensorflow 之后

想import  tensorflow 爽一把的时候,却出现的错误ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory

 

 

可以看到出错的原因是:没有找到libcudnn.so.6文件(6为对应版本具体可修改)

libcudnn.so.6 是一个软连接,连接到对应的libcudnn.so.6.0.21 

该文件一般放在/usr/local/cuda/lib64/文件目录下

可以查看自己是否有libcudnn.so.6.0.21文件(该文件一般有100多M)

有的话直接跳过下一步

 

到官网https://developer.nvidia.com/cudnn下载相应的cudnn库

在注册完帐号之后即可下载(应该选择自己对应的版本)

命令:输出cuda的版本  cat /usr/local/cuda/version.txt

命令:查看你的系统信息  uname -m && cat /etc/*release

 

 

 

 

 

从下载完的文件中,将libcudnn.so.6.XXX(具体可修改到自己下载的版本)文件放在/usr/local/cuda/lib64/文件目录下

切换到该目录下,删除原本的软连接

cd /usr/local/cuda/lib64/

sudo rm -rf libcudnn.so libcudnn.so.6

然后修改文件权限,并创建新的软连接

sudo chmod u=rwx,g=rx,o=rx libcudnn.so.6.5.18

sudo ln -s libcudnn.so.6.5.18 libcudnn.so.6

sudo ln -s libcudnn.so.6 libcudnn.so

 --------------分割线(当你使用的是服务器时)-----------------------

碰到个问题,因为使用的是服务器,没法更改usr目录下面的文件,或者因为更改了会导致别人的引用出错

因此,不能在/usr/local/cuda下更改,

本人使用的是在anaconda下安装的tensorflow 所以出现了上面的报错,因此我们将上述usr/.../lib64/文件夹下面的操作

换成在这个目录/home/username/anaconda3/envs/tensorflow/lib/下面进行即可,也不需要使用sudo权限了

 

------------------------------------------------------------------------

重新进入tensorflow环境下的python

import tensorflow

这就不会报错啦

运行下小例子检查一下

>>> import tensorflow as tf

>>> hello = tf.constant('hello')

>>> sess = tf.Session()

>>> a = tf.constant(10)

>>> b = tf.constant(20)

>>> print (sess.run(a+b))

30

 

 

 

可以开启魔幻之旅的   哈哈哈

 

出现错误ImportError:/usr/local/cuda-8.0/lib64/libcudnn.so.6: file too short 的原因应该是他连接到的这个库不对

同样按照上面的操作(删除连接-----创建连接)即可

 

上述步骤要是不能解决问题的话,可能就是路径不在环境变量中(哭唧唧。。这个问题花了一天的时间才解决的)

cd ~

sudo gedit .bashrc

在弹出的gedit文档编辑器(.bashrc中)中最后一行加入:

export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

这个路径是你libcudnn存放的位置

保存更改的文件后,紧接着:

source .bashrc

再重启一下Terminal(终端),重新进入tensorflow。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值