-
后面会指示有问题的包,去env/Lib/site-packages
下面找到前面带有~
的包删掉。
参考官方指南,首先查看支持 CUDA® 的 GPU 卡列表。
win系统可以去设备管理器 > 显示适配器中查看显卡。因为我的电脑支持CUDA® ,所以这里按照支持的流程来进行。
首先安装以下NVIDIA® 软件
-
NVIDIA® GPU 驱动程序,注意区分GRD(Game Ready Driver)和SD(Studio Driver),ML和图形学用后者好一些的样子。笔记本电脑去找带notebook或者laptop记号的。
![image-20230712180738133](D:\CS\Machine Learning\环境配置问题.assets\image-20230712180738133.png)
![image-20230712182646865](D:\CS\Machine Learning\环境配置问题.assets\image-20230712182646865.png)
-
CUDA® 工具包,TensorFlow支持CUDA® 11.2,但是CUDA 11.5才开始支持win 11,总之先装一个最新版试试(因为上面装的驱动版本是536.40,12.2.0要求536.25),应该是向后兼容的
CUDA的包很大,耐心安装即可。
![image-20230712181819240](D:\CS\Machine Learning\环境配置问题.assets\image-20230712181819240.png)
安装完cuda后,从控制台键入
nvcc --version
就可以检查到cuda了![image-20230712185843628](D:\CS\Machine Learning\环境配置问题.assets\image-20230712185843628.png)
-
CUDA® 工具包附带的 CUPTI
-
cuDNN SDK ,参考 cuDNN 版本找到对应CUDA版本的cuDNN,比如我上面装的12.2.0,这里只能选择v8.9.2
下载cuDNN需要登录NVIDIA账户
![image-20230712182734290](D:\CS\Machine Learning\环境配置问题.assets\image-20230712182734290.png)
下载好后是个压缩包,需要解压并复制到cuda文件夹。如果是默认安装的话,找一下安装路径(环境变量里也可以看到),将解压后的文件直接拖入CUDA文件夹即可(相当于打了个补丁)
如果没有 cuDNN64_8.dll
文件,TensorFlow 将无法加载,这个文件是cuDNN的lib里的。
安装之后,控制台cd到安装目录/extras/demosuite
,运行bandwidthTest.exe
![image-20230712191433900](D:\CS\Machine Learning\环境配置问题.assets\image-20230712191433900.png)
和deviceQuery.exe
![image-20230712191615963](D:\CS\Machine Learning\环境配置问题.assets\image-20230712191615963.png)
都正常应该就没事了。
首先pip install tensorflow
,高版本tf的不需要单独加-gpu
后缀,具体来说,1.15之前的版本CPU和GPU包是分开的,后面的不用考虑这个问题。
根据CUDA的安装位置,调整环境变量(默认应该都有,主要检查下有没有CUDA_PATH以及PATH下是否有CUDA的bin目录就行)。
验证tf能不能找到GPU
import tensorflow as tf
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
找不到,去论坛转了一圈,发现
![image-20230712212344560](D:\CS\Machine Learning\环境配置问题.assets\image-20230712212344560.png)
首先将tensorflow版本退回到2.10,拉一个新的虚拟环境
pip install tensorflow<2.11
确定没法读到GPU后,删除CUDA和cuDNN(好在放在同个路径了),重新安装CUDA11.8
和cuDNN for CUDA 11.x v8.9.2
,保险起见驱动也重装一次,版本不用改。
再次测试
>>> import tensorflow as tf
>>> print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
Num GPUs Available: 1
>>> tf.config.list_physical_devices('GPU')
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
OK,这次能读到了。
为什么选择11.8呢,因为后面可能要装PyTorch
![image-20230712211723418](D:\CS\Machine Learning\环境配置问题.assets\image-20230712211723418.png)