记录:在复现论文代码时碰到使用keras环境,于是在自己windows系统的台式机(RTX 3080;CUDA 11.7)上进行了安装,但是发现台式机的显存无法支持程序的运行。于是将一摸一样的环境配置到更大现存的Ubuntu服务器(CUDA 11.7)上,但配置环境出错,一直无法调用GPU。经过一天的摸索,从网上其他博客中找到答案,虽然不懂其中的道理,但先记录下来。
1. 待配置环境的版本
-
Python
: 3.8.0 -
CUDA
: 11.3.1 -
cuDNN
: 8.2.1 -
Tensorflow-gpu
: 2.7.0 -
Keras
: 2.7.0
2. Windows下使用conda和pip安装Tensorflow-gpu以及Keras
-
首先在Conda下创建虚拟环境且激活:
conda create -n tf-gpu python=3.8.0
conda activate tf-gpu
-
在命令行中安装cudatoolkit:
conda install cudatoolkit=11.3.1
-
在命令行中安装cudnn:
conda install cudnn=8.2.1
-
通过pip命令安装Tensorflow-gpu:
pip install tensorflow-gpu==2.7.0
-
也可以使用清华源使安装速度提升(注意与上一步目的相同):
pip install tensorflow-gpu==2.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple --user
-
检查Tensorflow是否可用:
-
使用
tf.test.is_gpu_available()
检查Tensorflow中是否可用GPU,出现“True”则可用,出现“Flase”则表示GPU不可用。 -
接着同样使用pip命令安装keras(使用清华源加速):
pip install keras==2.7.0 -i https://pypi.tuna.tsinghua.edu.cn/simple --user
3. Ubuntu下使用conda和pip安装Tensorflow-gpu以及Keras
-
使用
nvidia-smi
查看已有CUDA版本为11.7,待配置的环境版本与Windows配置的版本一致:
-
安装Tensorflow方法与上述Windows中的方法一致,然而我在Ubuntu中使用
tf.test.is_gpu_available()
检查是否能够使用GPU时出现“Flase”:
-
检查上面的提示报错信息,有这么一句话值得注意(大意是无法找到动态库
libcudnn.so.8
):
Could not load dynamic library 'libcudnn.so.8'; dlerror: libcudnn.so.8: cannot open shared object file: No such file or directory
-
我们通过以下几行代码来解决上述问题:
–
locate libcudnn.so.8
(找到该动态库)
可以看到上述图片中找到了两个
locate libcudnn.so.8
的路径,由于我安装的cudnn=8.2.1,所以我以第3行找到的路径为接下来所需的动态库
locate libcudnn.so.8
的路径。
–
sudo vim /etc/profile
(打开环境文件)
-在环境文件中插入下述语句(:插入,esc 退出编辑模式,wq 保存环境文件且退出):
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/miniconda3/pkgs/cudnn-8.2.1-cuda11.3_0/lib
(注意其中
/home/xxx/miniconda3/pkgs/cudnn-8.2.1-cuda11.3_0/lib
为之前代码找到的动态库的路径)
–
source /etc/profile
(更新环境文件) -
接下来重新激活上述环境且使用
tf.test.is_gpu_available()
检查是否能够使用GPU(此时提示“True”证明GPU可用。若仍然提示“Flase”,可按照上述几行代码,将无法加载的动态库都找到对应的路径且写入环境文件中。我在配置环境中除了libcudnn.so.8还有libcudart.so.11.0,通过上述几行代码成功的解决了无法使用GPU的问题):
-
接下来同Windows一样,使用
pip install keras==2.7.0
安装keras,检查后确认成功安装!
版权声明:本文为zxk_75原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。