ubuntu下tensorflow 报错 libcusolver.so.8.0: cannot open shared object file: No such file or directory
解决方法1. 在终端执行:
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/cuda/lib64”
export CUDA_HOME=/usr/local/cuda
但是每次要运行tensorflow时都得执行此命令,而且在Spyder、jupyter notebook中仍然报错。
解决方法2. 在bashrc中写入路径:
sudo vim ~/.bashrc
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/cuda/lib64”
export CUDA_HOME=/usr/local/cuda
source ~/.bashrc
但是这还没解决我的问题。
解决方法3. 彻底解决
- 检查
LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
我的结果: ”:/usr/local/cuda/lib64”
再执行命令:
sudo ldconfig /usr/local/cuda/lib64
问题完美解决,此时不管在终端、Spyder、jupyter notebook中 import tensorflow、import keras都不报错。
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/usr/local/cuda/lib64”
export CUDA_HOME=/usr/local/cuda
************************************转载************************
CUDA,CUDNN工具箱多版本安装、多版本切换
前言
cuda版本最新是10.0。
但目前最适合我们的则是9.2或者9.1。
如果我们因为某些原因想同时使用两个版本的话,应该怎么样呢?
很简单!一起按步骤来吧。
安装cuda和cudnn
关于具体的安装步骤可以查看这个网址:https://oldpan.me/archives/pytorch-gpu-ubuntu-nvidia-cuda90
之前已经详细地说明了,不同版本其实也是大同小异,我们唯一需要注意的是,之前已经安装过一个版本,继续安装新版本的时候,我们的设置选择需要稍微修改一下:
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 396.80?
(y)es/(n)o/(q)uit: n
#如果在这之前已经安装好更高版本的显卡驱动就不需要再重复安装,如果需要重复安装就选择 yes,注意需要关闭图形界面。 Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]:
#一般选择默认即可,也可以选择安装在其他目录,在需要用的时候指向该目录或者使用软连接 link 到 /usr/local/cuda。 Do you want to install a symbolic link at /usr/local/cuda?
# 这个看你自己,看当前是想用现在按照的cuda版本还是之前已经安装的cuda版本,这里我选择使用之前的cuda版本
(y)es/(n)o/(q)uit: n
---------------------
# 其他设置和之前相同即可
安装过程与之前无异,cudnn放到相应的文件夹中即可。
修改.bashrc
安装好两个版本的cuda之后,我们需要修改.bashrc文件
,和官方说明的一样,我们在.bashrc文件
中添加配置路径,一般来说如果我们按照cuda-9.1
需要这样写:
export PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
如果我们同时安装了cuda-9.1
和cuda-9.2
的时候,可能想到是这样写:
export PATH=/usr/local/cuda-9.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export PATH=/usr/local/cuda-9.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
这样写并没有什么问题,因为我们的深度学习库是按照/usr/local/cuda
这个链接来进行寻找cuda模块的,只要我们将cuda进行正确的软连接,那么在实际运行中并没有什么问题。
但是这样并不是很优雅,而且在使用一些其他cuda命令的时候很有可能寻找错误,为此我们将配置文件直接改成如下即可:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
这样我们在切换软连接的时候,系统就可以自动根据我们的软连接查找相应的路径了。
切换软连接
切换软连接还是比较容易的,按照下方的命令即可:
# 查看cuda此刻的链接
prototype@prototype-X299-UD4-Pro:/usr/local$ stat cuda
File: 'cuda' -> '/usr/local/cuda-9.1'
Size: 19 Blocks: 0 IO Block: 4096 symbolic link
Device: 802h/2050d Inode: 14288660 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-11-29 09:55:32.198913134 +0800
Modify: 2018-11-29 09:55:04.186653444 +0800
Change: 2018-11-29 09:55:04.186653444 +0800
Birth: -
# 切换cuda-9.1 为 cuda-9.2
prototype@prototype-X299-UD4-Pro:/usr/local$ sudo ln -s /usr/local/cuda-9.2 /usr/local/cuda
prototype@prototype-X299-UD4-Pro:/usr/local$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Tue_Jun_12_23:07:04_CDT_2018
Cuda compilation tools, release 9.2, V9.2.148
# 切换 cuda-9.2 为 cuda-9.1
prototype@prototype-X299-UD4-Pro:/usr/local$ sudo rm -rf cuda
prototype@prototype-X299-UD4-Pro:/usr/local$ sudo ln -s /usr/local/cuda-9.1 /usr/local/cuda
prototype@prototype-X299-UD4-Pro:/usr/local$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85
需要注意的小细节
显卡驱动问题
注意不同cuda版本对显卡驱动版本的要求也不同。
对于我的情况来说,如果我想使用cuda-9.1
和cuda-9.2
,那么我就必须安装396.26
及以上的Nvidia显卡驱动,如果只满足了390,那么就会出现cuda-9.1
可以使用但9.2就检测不到了。
所以安装最新的显卡驱动即可。
关于怎么安装可以看着这里:https://oldpan.me/archives/ubuntu16-04-nvidia-driver-get-stuck
编译源码问题
自己在编译Pytorch最新版的时候发现,cuda-9.1并不支持gcc-7.3的版本(为了体验C++-17的特性,将系统中的gcc进行了更新)。只有cuda-9.2及以上才支持,那么就有两种解决方法:
- 安装最新的cuda-9.2
- 切换回gcc-5
其实切换gcc版本和切换cuda版本都是类似的,我们的系统同样可以安装多个gcc版本,比如我的系统中就存在多个gcc版本,在安装新版本的gcc后并不会删除旧版本,因此我们可以随时切换gcc:
cd /usr/bin prototype@prototype-X299-UD4-Pro:/usr/bin$ gcc
gcc gcc-ar gcc-nm gcc-ranlib
gcc-4.9 gcc-ar-4.9 gcc-nm-4.9 gcc-ranlib-4.9
gcc-5 gcc-ar-5 gcc-nm-5 gcc-ranlib-5
gcc-7 gcc-ar-7 gcc-nm-7 gcc-ranlib-7 # 切换gcc链接到gcc-7版本
sudo rm -r gcc
sudo ln -sf gcc-7 gcc
sudo rm -r g++
sudo ln -sf g++-7 g++
ubuntu下tensorflow 报错 libcusolver.so.8.0: cannot open shared object file: No such file or directory的更多相关文章
- 安装tensorflow报ImportError: libcublas.so.9.0: cannot open shared object file的解决方法【转】
本文转载自:https://blog.csdn.net/qq_37274615/article/details/81099738 转载自:https://blog.csdn.net/qysh123/a ...
- pycharm报错:ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory
pycharm报错:ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory ...
- ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory
问题描述: ImportError: libcusolver.so.8.0: cannot open shared object file: No such file or directory 首先检 ...
- 〖Android〗arm-linux-androideabi-gdb报 libpython2.6.so.1.0: cannot open shared object file错误的解决方法
执行: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gdb out/target/p ...
- 导入tensorflow:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or director【转】
本文转载自:https://blog.csdn.net/ksws0292756/article/details/80034086 版权声明:本文为博主原创文章,转载请一定附上博主原文链接,并署名转自Z ...
- Ubuntu下MySQL报错:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
在Ubuntu下 想要登录mysql数据库 root@JD:~# mysql -uroot -p 报错 ERROR 1045 (28000): Access denied for user 'root ...
- windows10下git报错warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory.
window10下使用git时 报错如下: $ git add readme.txtwarning: LF will be replaced by CRLF in readme.txt.The fil ...
- 报错解决——OSError: libdarknet.so: cannot open shared object file: No such file or directory
在python目录下打开终端,输入 python darknet.py 结果报错 Traceback (most recent call last): File “darknet.py”, line ...
- php程序报错:PHP Core Warning/cannot open shared object file: No such file or directory
今天开发调试程序的时候报错了,现象是有时候刷新会出现如下图: 这种主要是找不到共享库文件,即.so文件,网上主要有3种解决方法: 1. 用ln将需要的so文件链接到/usr/lib或者/lib这两个默 ...
随机推荐
- MT【235】两道函数题
已知$g(x)=x^2-ax+4a$,记$h(x)=|\dfrac{x}{g(x)}|$,若$h(x)$在$(0,1]$上单调递增,求$a$的取值范围. 解答: 已知$$g(x)=\begin{cas ...
- SQLITE在IIS中使用问题
在WEB中使用这个数据库时,System.Data.SQLite.dll 这个经常会出问题 主要是版本问题,sqlite.DLL的版本要和Framework版本匹配 这是下载地址 http://www ...
- bzoj4985 评分 (二分答案+dp)
首先二分一个答案x,然后我们把>=x的数看成1,<x的数看成0,那如果最后剩下1,这个答案就是合法的. 那我们就来算让某一位得1至少需要填几个1(设这个值是f[i]) i=1..n时,显然 ...
- sklearn 的train_test_split
train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回划分好的训练集测试集样本和训练集测试集标签. 格式: from sklearn.model_selection imp ...
- .net连接ORACLE数据库
这段时间维护客户的一个系统,该系统使用的是ORACLE数据库,之前开发的时候用的都是MSSQL,并没有使用过ORACLE.这两种数据库虽然都是关系型数据库,但是具体的操作大有不同,这里作下记录. 连接 ...
- DownloadProvider 源码详细分析
DownloadProvider 简介 DownloadProvider 是Android提供的DownloadManager的增强版,亮点是支持断点下载,提供了“开始下载”,“暂停下载”,“重新下载 ...
- 【洛谷P1379】八数码难题 状压bfs
对于这道题来说,每个时刻的状态是整个棋盘所有棋子的位置,即:任何一个棋子位置发生了移动,都会使得状态转移. 因此,需要采取将整个状态作为广搜的搜索对象,进行状态压缩.采用哈希得到每个状态的对应的数值, ...
- ReactNative快速入门
首先放图 这就是我通过简单的搭建环境写出的helloworld和使用的button组件. 那么搭建环境如何搭建呢? 使用的软件有:Node 最新版,Python2.7,Android环境要有配置And ...
- poj1185炮兵阵地 正确代码及错误代码分析
Solution:状态压缩 因为设置炮兵的局限性(同行两炮兵相差要大于2),一行10个数最多有60种可能性(程序计算) 其中判断可能性的好方法是: if ((i & (i << 1 ...
- JavaSE学习总结(十九)—— Java Web 综合应用(JSP、Servlet、IDEA、MySQL、JUnit、AJAX、JSON)
一.使用Servlet+JDBC+MySQL+IDEA实现商品管理 1.1.创建项目 打开IntelliJ IDEA开发工具.点击Create New Project创建一个新的Web项目 选择Jav ...