记录:在复现论文代码时碰到使用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,检查后确认成功安装!
上述安装Tensorflow-gpu以及Keras过程中,我参考两个博客,传送:博客-1, 博客-2
版权归原作者 zxk_75 所有, 如有侵权,请联系我们删除。