提示:本人纯小白,使用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'))
可以发现成功连接。
顺便补充,项目要求tf和torch混用,后续我又pip install torch,安装了默认的torch,版本是1.13.1+cu117。
没有发生冲突。
总结
以上就是我解决这个问题的全部步骤,没啥太多的技术含量,其实还是tensorflow版本的问题。也许不适配每一种情况。
今天12.31日,写到这里的时候外面在放烟花。真好,没把问题留到2025。