前情提要
最近换了新电脑,显卡是4060,就觉得跑深度学习没什么问题,结果tensoflow配置好后用不了GPU加速,让我头疼了很久。因为现在tensorflow新版已经取消了gpu和cpu版本的区别,所以网上关于统合版tensorflow (>2.0)的教程很少,一般都是tensorflow_gpu版本。今天终于解决了,如果有遇到以下问题的同学们可以参考一下:
测试代码
用来测试自己能否使用GPU
import tensorflow as tf
print(tf.test.is_built_with_cuda())
print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))
下面的代码可以报错,让你知道问题在哪,推荐先使用下面这段代码:
import tensorflow as tf
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
print(gpus, cpus)
问题列表
- 找不到GPU/可用GPU数量为0
首先是显卡驱动,CUDA toolkit ,cuDNN工具的安装,需要按照自己的CUDA版本和显卡配置去安装,首先检查这三个,并设置好环境变量PATH。
在英文版的tensorflow官网主页有一条额外
的注释:
Caution: TensorFlow 2.10 was the last TensorFlow release that supported GPU on native-Windows.Starting with TensorFlow 2.11, you will need to install TensorFlow in WSL2 or install tensorflow-cpu and , optionally, try the TensorFlow-DirectML-Plugin
省流:本地windows目前只支持2.10.0及以下版本!!(如果要使用GPU的话)
所以只要uninstall你的tensorflow并且下载这个版本就行啦
pip install tensorflow==2.10.0
- 在更换版本后(可能会出现tensorflow_intel和其他包冲突,本人目前暂未遇到问题),报错缺少dll文件
Could not load dynamic library ‘cudart64_101.dll’; dlerror: cudart64_101.dll not found
上面的dll文件名可能有所不同,可能是curpase什么的,先在你的cuda toolkit文件夹的bin中搜索该dll的前半部分。
例如我缺少curpase64_11.dll 我搜索该文件夹下curpase64发现有curpase64_12.dll文件,则将这个文件复制并将12改成11.
若搜索发现没有同前缀文件,就去万能dll网站下载
到此本人的问题解决
磕磕绊绊
- 在一开始我觉得是我第一点出错了,就卸载了conda等等,因为出现更新conda自身时有charset包无限报错等等
- 后面转去谷歌的colab云平台跑代码了,有梯子还挺快的
- 安装tensorflow建议不要用conda命令安装,除非按照conda官方的步骤(可能会挺好用也不好说),使用pip
- tensorflow用来实现机器学习算法很方便,tensorflow+keras实现简单深度学习模型也很简单,有机会可以出个实现简单分类问题的文章。
参考
[1]https://blog.csdn.net/qq_38563206/article/details/121106374
[2]https://blog.csdn.net/bragen/article/details/129131278
文章出处登录后可见!