【背景】
前段时间要做一个python语音识别模型,需要tf进行训练,考虑到有GPU就不用限制在CPU上了,所以尝试配置Tensorflow.
- 系统配置为:
- RTX4060+win11+Anaconda3,使用python3.10配置完成。
- 【补充建议:使用虚拟环境进行版本管理,我用anaconda创建了一个名为tf2,python=3.10的虚拟环境】
- 配置完成后,Tensorflow与cuda版本为:
- Tensorflow2.10.0+cuda11.8+cudnn8.7
【准备工作】
1、先去找个人电脑的基础配置,在cmd终端输入“nvidia-smi”查看GPU配置
右上角的“ CUDA Version: 12.3”是电脑能兼容的最高的CUDA版本
2、然后在官网(Build from source on Windows | TensorFlow (google.cn))查看python-CUDA-Tensorflow的版本对应关系
根据电脑的python版本与CUDA最高兼容版本,来确定一个你能使用的Tensorflow的最高版本
例如我是python3.10,最高兼容CUDA12.3,因此我能够支持最新版的tensorflow_gpu-2.10.0,故选择该版本。该版本对应的CUDA版本是11.2.X
但是CUDA11.2.X不支持WIN11,经过本人实测,CUDA11.8.X版本也可以兼容。我最终采用了CUDA11.8.X。
需要注意的是:Tensorflow2.10以后的版本是不支持原生windows的,只能通过WSL方式安装,这不在我们的讨论范围内
3、选择好tensorflow版本之后,我们去下载对应的CUDA(网址:CUDA Toolkit Archive | NVIDIA Developer)与cuDNN(网址:cuDNN Archive | NVIDIA Developer)
注意:cuDNN选择与CUDA版本对应的版本即可
【安装工作】
安装顺序为:CUDA>>cuDNN>>tensorflow
CUDA和cuDNN的安装教程,网络上随处可见并且都很简洁明了,在此不再赘述。
tensorflow的安装,需要预先在anaconda创建好所需python版本的虚拟环境,然后在环境中用pip安装tensorflow
1 pip install tensorflow==2.10.0#之前确定的版本号
然后就大功告成了!
【验证】
安装好之后,需要向Jupyter Notebook添加该环境的内核,操作可以参考如下:
1 conda activate env_name #激活到虚拟环境 2 pip install ipykernel #安装ipykernel,不建议使用conda安装 3 python -m ipykernel install --user --name=kernel_name#=虚拟环境名称
然后使用如下例程验证是否可以用tensorflow识别到GPU:
1 import tensorflow as tf 2 print(tf.__version__)#查看tensorflow版本 3 print(tf.config.list_physical_devices('GPU')) 4 print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
进一步可以打印GPU信息,代码如下:
1 from tensorflow.python.client import device_lib 2 devices = device_lib.list_local_devices() 3 [print(device) for device in devices if device.device_type == 'GPU']