之前从事的深度学习一直使用的pytorch框架,最近在测试一些深度方法的过程中需要用到TensorFlow并且需要调用GPU。以下潦草记录了自己在安装TensorFlow-GPU开发环境过程中遇到的一些问题以及解决的办法。
1、新创建一个conda虚拟环境
这个对于一些python老手来说不是什么难事了,直接上代码
conda create -n tensorflow-gpu python=3.7
创建过程中选择 ‘y’ 即可。
这样就创建了一个名为tensorflow-gpu的虚拟环境,其具体创建位置可以在anaconda安装路径下的env文件夹下找到。此外我在创建该环境的时候指定了python的版本为3.7,这是因为我使用的开发软件是VS Code,在最近的一次使用中发现低于3.7的python版本已经不被支持作为编译器了。
创建好环境后,对其进行激活,因为后续的安装操作需要在该环境下进行。
conda activate tensorflow-gpu
2、安装gpu版tensorflow
注意,TensorFlow分为CPU和GPU两种版本,安装过程中需要指定是GPU版。
对于已经安装了TensorFlow的环境,如果想要分辨出是CPU的还是GPU也很简单,使用指令
pip list
查看已安装包的列表,在其中找到tensorflow。如果只是tensorflow,那么就是cpu版本,如果是tensorflow-gpu,那显然就是gpu版本了。
这里在安装之前建议大家先添加几个速度快的清华源,不然可能会出现下载时间太长导致的安装失败的情况。我添加的是以下几个源,直接在命令行窗口中逐条粘贴回车即可。
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/
此外,还有一个很重要的步骤,那就是确定tensorflow的版本,要与电脑的CUDA相匹配,安装了不匹配的tensorflow版本即使成功了也使用不了GPU!
所以,在这之前需要先查看一下电脑已安装的CUDA版本,这里提供两种方法:
方法一:通过安装路径查看
已安装的CUDA路径一般为
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
进到该路径下会有一个以安装的CUDA版本号命名的文件夹,如我安装的是11.3版本
方法二:通过指令查看
在命令行窗口中激活一个带有pytorch的虚拟环境,并进到python下
>>conda activate pytorch #我已经有pytorch环境
>>python
#查看cuda版本
import torch
print(torch.version.cuda)
#附加
#查看torch版本
import torch
print(torch.__version__)
#查看cudnn版本
import torch
print(torch.backends.cudnn.version())
查看完毕,我的cuda版本是11.3,那么下面就看与之相匹配的tensorflow是什么版本
点击链接查看
结果没有11.3版本的,我就选了最近的版本 2.6.0,完成后发现可以使用。
下面就通过指令进行安装
pip install tensorflow-gpu==2.6.0 --default-timeout=100 -i https://pypi.tuna.tsinghua.edu.cn/simple
安装其他版本的只需要替换这里的2.6.6即可,三四百兆这样,有了源应该很快。
3、查看GPU是否可用
这是最主要的目的,查看方式即使用如下代码
import tensorflow as tf
tf.test.is_gpu_available()
与检测pytorch下cuda是否可用类似,如果上述结果返回True,那么很幸运,gpu版的tensorflow已经安装成功了
如果返回False,那可能还有某些其他原因,比如cuda版本还是没有对应上,亦或者是cudnn版本本身与cuda对应的就有问题等等,这里因为我之前一直使用的pytorch框架也是用到gpu的,所以cuda和cudnn是早就安装好了的而且也么什么问题。
3、缺少zlibwapi.dll文件
这是我的遇到的最后一个问题,在上述安装完毕后运行程序时遇到如下报错
Could not locate zlibwapi.dll. Please make sure it is in your library path
这是因为缺少一个 zlibwapi.dll 这样的文件,具体的了解不多,直接通过该博客解决。