Bootstrap

纯小白tensorflow2.10连接gpu记录,超简单方法解决

提示:本人纯小白,使用tensorflow是复现项目的要求,如果有不当发言请指正。


前言

调整了整整三个下午,试过各种版本,怎么也连不上gpu,直接破防。官网上要求的tensorflow2.10.0对应的cudnn版本是8.1,cuda版本是11.2,而网上能找到的教程也是如何去安装cudnn8.1的,因为个人是在远程服务器上跑,感觉不是很方便,就一直没尝试。


一、本人环境以及存在的问题

使用conda创建的虚拟环境,项目的要求是python3.7(但以下方法应该不限制版本),tensorflow2.10.0。

tensorflow包括tensorflow=2.10.0以及tensorflow-gpu=2.10.0。后续我尝试之后发现python3.7是无法与tensorflow-gpu同时安装的(在同一条conda指令安装仅支持3.8及以上),而单独安装又连不上gpu。

存在的问题:

python
>>import tensorflow as tf
>>print("TensorFlow 使用 CUDA 构建: ", tf.test.is_built_with_cuda())
>>print("GPU 可用: ", tf.config.list_physical_devices('GPU'))

结果均输出false,意思时我现在的tensorflow不是用cuda构建的,连不上gpu。

二、解决步骤

默认已经创建好虚拟环境等步骤,进入自己的虚拟环境。

1.查看当前环境可以安装的tensorflow

命令如下:

conda serach tensorflow

我调用后出现的结果,可以发现tensorflow2.10.0之间也有区别。
调用该命令后的结果
我之前运行conda install tensorflow==2.10.0,下载下来的标签不是带有gpu的。

2.选取自己python版本的tensorflow进行安装

我安装之前没有删除之前的tensorflow。也就是说可删可不删。

因为我的python是3.7,因此选取标签中带有py37、带gpu的版本。直接调用这个命令(标签替换成自己需要的),重点是要选定安装版本的标签。命令如下:

conda install tensorflow=2.10.0=gpu_py37h84cb581_0 -c conda-forge

运行时的warning可以忽视。然后这个Solving environment会转很久很久,也许是根据自己本身环境的复杂性吧,conda在检测冲突什么的。我新建的环境差不多需要十分钟,之前的环境安装的东西比较多就需要超漫长的等待,也容易出现冲突。建议新建环境,先装tensorflow。
运行命令后的效果
solve完之后,会自动安装cudnn8.1以及cudatoolkit11.3,输入Y继续安装
自动下载的内容

3.检测gpu链接

安装完毕后,可以测试自己的tensorflow是否成功安装gpu。

python
>>import tensorflow as tf
>>print("TensorFlow 使用 CUDA 构建: ", tf.test.is_built_with_cuda())
>>print("GPU 可用: ", tf.config.list_physical_devices('GPU'))

检测gpu结果
可以发现成功连接。

顺便补充,项目要求tf和torch混用,后续我又pip install torch,安装了默认的torch,版本是1.13.1+cu117。
没有发生冲突。

总结

以上就是我解决这个问题的全部步骤,没啥太多的技术含量,其实还是tensorflow版本的问题。也许不适配每一种情况。
今天12.31日,写到这里的时候外面在放烟花。真好,没把问题留到2025。

;