RTX2080配置tensorflow-gpu,问题1:检测不到可用gpu设备,问题2:Failed to get convolution algorithm.
Error : Failed to get convolution algorithm. This is probably because cuDNN failed to initialize, so try looking to see if a warning log message was printed above.
cuda环境:10.0
经过了一天多的奋战,终于解决了tensorflow-gpu检测不到可用gpu,以及检测到gpu但是报错不能进行卷积计算的错误
错误1:cuda10.0 安装tensorflow-gpu一直无法检测到可用gpu,检测到的设备只有cpu
tf检测可用设备代码如下:
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
找了很多解答的链接:one of here,此处记录一下,以免以后再找
当时检测出来的设备只有这个样子:
只有cpu和XLA_CPU,而且第二个还不能用
后来发现,我是用的anaconda安装的,用的conda,安装tensorflow-gpu时,也顺带安装了tensorflow,有博客说会默认先用gpu的,而且不能import tensorflow-gpu,很迷
后来发现,用pip方式,只会安装gpu版,cpu版本的就不会装了
于是,我便重新用pip安装了一下
pip install tensorflow-gpu
成功解决了检测不到gpu设备的问题
然后顺带记录一下另一个,关于cudnn的问题
有很多文章分享了cuda和cudnn之间的关系,如:tensorflow-gpu1.14.0,cuda10.0,匹配的是7.4的cudnn
在此记录一下版本对应链接:链接
还有github上面对于cudnn版本的讨论:github
指定安装版本命令:
conda install cudnn==7.4.2
错误2:提示Failed to get convolution algorithm.
讨论1:tensorflow版本太高了
尝试:但是cuda限制,不能把tensorflow降到随意指定的版本,(网上有强制--force
命令,但是我输入会报错)
命令是这样的(版本号自行修改):
sudo pip3 install --upgrade --force-reinstall tensorflow-gpu==1.9.0 --user
讨论2:要用conda安装,可能是缺少库
尝试:我用conda安装tensorflow-gpu,import时提示没有这个模块
万念俱灰啊,向老大求助
得到了这个链接:链接在此
试了一万遍之后,抱着最后试一次的心态
输入以下代码:
tf.debugging.set_log_device_placement(True)
gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
# Currently, memory growth needs to be the same across GPUs
for gpu in gpus:
tf.config.experimental.set_memory_growth(gpu, True)
logical_gpus = tf.config.experimental.list_logical_devices('GPU')
print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
except RuntimeError as e:
# Memory growth must be set before GPUs have been initialized
print(e)
解决!!!
这才是使用了gpu之后会输出的东西啊
感谢众多博主的分享和帮助!!!
宝贵的经验统统都记下来,以后找起来就方便多了😁