写在前面:本安装过程基于windows系统

安装版本

python3.9

CUDA:11.2

cudnn:8.1

tensorflow-gpu=2.10

numpy=1.26.4

pandas=1.5.3

matplotlib、opencv等默认版本即可,是兼容的

一、新建一个环境并激活

打开anaconda prompt

新建环境
conda create -n tfenv_gpu python=3.9

激活
conda activate tfenv_gpu

这部分详细的介绍可以看我之前的博客关于tensorflow-cpu版本的下载:在anaconda环境中安装numpy、bandas和tensorflow-cpu库-CSDN博客

二、安装CUDA和cudnn

版本对应:电脑显卡驱动版本-CUDA版本

我最开始安装的时候是对照很多前辈写的博客直接在官网找cuda和cudnn适合我电脑CUDA版本进行安装的,也就是说我直接把它俩装在了我的系统里。但是后面发现在新的环境中我装的tensorflow-gpu识别不到我的系统的这个cuda,不知道该怎么解决了,后面查了一下可以不用安装整套的CUDA,可以直接在环境中用命令安装cudatooltik和cudnn这两个工具就行,就在新的环境下用命令装了一对新的。

但是在这里也出现了需要注意的问题就是我们的电脑硬件能用什么版本的CUDA

查看电脑显卡驱动和CUDA版本:win+R------>cmd------>nividia-smi

我的电脑显卡驱动版本是576.88,允许安装的CUDA最高版本是12.9,所以我安装的cuda版本必须小于12.9才可以

正式安装

在新建的环境中指令安装CUDA和cudnn,键入下面的代码,指定安装cuda版本为11.2和cudnn版本为8.1,这两个版本与tensorflow-gpu=2.10.0兼容。

conda install cudatoolkit=11.2 cudnn=8.1 -c conda-forge

安装成功后如下所示

验证CUDA和cudnn是否安装成功

import tensorflow as tf

# 1. 打印 TensorFlow 版本
print("TensorFlow 版本:", tf.__version__)

# 2. 列出所有可用的物理设备(最关键的检查)
print("\n所有物理设备:")
print(tf.config.list_physical_devices())

# 3. 重点:检查是否识别到了 GPU
print("\nGPU 设备:")
gpu_devices = tf.config.list_physical_devices('GPU')
print(gpu_devices)

# 4. 验证 GPU 是否可用于计算(另一种方式)
print("\nGPU 是否可用(tf.test.is_built_with_cuda):", tf.test.is_built_with_cuda())
print("GPU 设备名称:", tf.test.gpu_device_name() if gpu_devices else "No GPU found")

# 5. 如果找到了GPU,可以打印更详细的信息
if gpu_devices:
    print("\nGPU 详细信息:")
    # 确保 tf.test.gpu_device_name() 不会在无GPU时报错
    details = tf.test.gpu_device_name()
    if details:
        from tensorflow.python.client import device_lib
        local_device_protos = device_lib.list_local_devices()
        for x in local_device_protos:
            if x.device_type == 'GPU':
                print(x.physical_device_desc)

如果CUDA和cudnn完成安装并能够被tensorflow正确识别,输出结果如下所示:

三、安装tensorflow-gpu

在这个地方很奇怪,我看了很多前辈写的博客,直接用conda install可以安装tf-gpu版本,但是我试了一下在这个频道找不到这个版本的,或许其它频道可以,但没有尝试。我还试了2.9版本的tf-gpu,还是找不到。

conda install -c conda-forge tensorflow-gpu=2.10

解决办法:在conda环境中,键入下列代码,用pip命令下载tf-gpu=2.10.0,下载的时候也会自动安装一个对应版本的numpy。

pip install tensorflow-gpu==2.10

但是会出现一个问题,在pycharm的环境下查看这些包,会发现numpy安装的是2.X版本的,但是2.x版本的与tensorflow-gpu-2.10并不兼容,实际上也确实如此,我导入包试了一下,确实报错了。

解决办法:将numpy卸载重装指定版本,这里最好不要再终端用pip uninstill或者conda remove命令卸载,要么就是报错说找不到要么就是会把依赖于numpy的所有包都卸掉的,比如tensorflow或者pandas(如果之前在这个环境中装了pandas)。

我的办法是在pycharm这个环境下卸载numpy。

然后重新安装指定版本的numpy,我安装的是1.26.4,可以用conda命令,也可以直接在pycharm里点击那个小加号,输入指定版本安装

conda install -c conda-forge numpy=1.26.4

然后安装其它的库即可

pandas要指定版本,一些版本存在与numpy不兼容情况

conda install -c conda-forge pandas=1.5.3

matplotlib和opencv默认版本即可,我试过了,兼容的

conda install -c conda-forge opencv
conda install -c conda-forge matplotlib

这里需要注意conda安装opencv的命令,与pip安装的命令有所不同:pip install opencv-python

题外话---在conda环境中用pip命令和conda命令的区别

  1. 用这两个命令都会把需要的库安装在我们新建的conda环境下
  2. 两个命令安装的库的来源不同
  3. 用conda安装会更稳定,优先使用conda安装,conda找不到再用pip安装
  4. 不要同时用conda或pip安装同一个包,两个安装方式互相看不到的,可能同时安装了两个,这样的话会报错

更具体的解释自己AI吧

四、安装经验

当我们在创建一个大的深度学习项目的时候,通常需要安装很多的库,经常存在库与库之间的版本冲突和默认频道找不到库的状况导致安装失败,我现在安装这些库的时候,通常就先安装conda-forge能找到的,都安装好以后,找不到的才会用pip命令安装。

在一个库的安装过程中,我还会关注一下安装过程中出现的list,看一下有没有帮我安装一些基本的库,比如numpy经常在安装别的库的时候给你安装上去,也关注一下这个库安装的时候有没有把原来安装好的基本库卸载安装了新的版本,新的版本可能与另外的库又存在冲突导致安装失败。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐