keras上运行Tensorflow-gpu的艰难历程(最新版,更新中)

废话不多说,我们一起来看看遇到的错误和解决方法。

在解决问题之前,先确保我们的是否在使用tensorflow-gpu版本,代码如下

import os
from tensorflow.python.client import device_lib
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '99'
if __name__ == '__main__':
    print(device_lib.list_local_devices())

keras上运行Tensorflow-gpu的艰难历程(最新版,更新中)

如过不是,那么请看您是否遇到下面1中遇到的报错情况(我就遇到了,难受)

1.首先,当然是常见的cuda+cudnn+tensorflow+keras之间的版本对应问题!!!不管遇到什么样的报错,一定要先确定版本对应(前车之鉴)。

cuda与cudnn到如下链接查询:

cuDNN Archive | NVIDIA Developer

其次,cuda和tensorflow到如下链接查询:

Build from source  |  TensorFlow

最后是tensorflow和keras的对应关系:

如果是tensorflow是1.x版本的:那么请参考这位博主的:tensorflow和keras版本对应关系 – 知乎

如果是tensorflow是2.x版本的,虽然网上有人说已经可以兼容了,但是我发现不行。我的tensorflow是2.2的,但是如果使用keras2.3.1,会报错!!!后面我使用keras2.4.0就可以了。

各位可以尝试提高keras版本(一点点就行,太高也报错。。。)

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.

keras上运行Tensorflow-gpu的艰难历程(最新版,更新中)

最离谱的是,居然说是cudnn的问题!当然遇到这种问题也可能是cpu内存不足也会这样的报错,在终端输入nvidia-smi,看gpu是否被占满了,如果是请参考这位博主的:“Failed to get convolution algorithm. This is probably because cuDNN failed to initialize”错误的解决办法_史丹利复合田的博客-CSDN博客

至于具体的tensorflow2.x和keras对应关系,我在网上未找到具体的表格。各位如果没有遇到如上的报错,可以先跳过。

2.版本问题确认之后,如果还是无法运行,我们可以进行检查问题所在

nvidia-smi
nvcc -V

1.再次确认,这里nvidia-smi的版本一定要>=nvcc- V的!如果你下载了多个cuda版本,请参考以下博主的链接(还有注意看该博客的评论):ubuntu 安装多个CUDA版本并可以随时切换_yinxingtianxia的博客-CSDN博客_安装多个cuda

2.确认tensorflow-gpu是否启用

python
>>>import tensorflow as tf
>>>tf.__version__
2.2.0
>>>tf.test.is_gpu_available()
True

看是否返回True,如果是False,那么就是这里出现了问题,并且出现了以下报错(类似的)

Could not load dynamic library ‘libcudart.so.11.0’ ?

很可能就是你的cudnn配置有问题,请查看配置(在终端输入):

cat/usr/local/cuda/include/cudnn.h |grepCUDNN_MAJOR -A 2

如果报错或者版本不是你下载的,可以尝试卸载cudnn,重新下载,具体卸载安装请看以下博主的(简单全面):ubuntu18.04中安装和卸载cuDNN – 努力奋斗的阿贝拉 – 博客园

上面的报错是我遇到的比较难的报错(在我遇到的报错中,其他的错误,我可以在网上找到答案。),有什么问题可以在评论区和我一起讨论。

如果你是路上的新手,如果有错误的地方,还清并给出建议。

参考文章:

tensorflow2.x使用cuda10.2(非常简单)_YouAreLion的博客-CSDN博客_cuda10.2 tensorflow

ubuntu 安装多个CUDA版本并可以随时切换_yinxingtianxia的博客-CSDN博客_安装多个cuda

“Failed to get convolution algorithm. This is probably because cuDNN failed to initialize”错误的解决办法_史丹利复合田的博客-CSDN博客

版权声明:本文为博主新手村霸原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_58420301/article/details/123198497

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年3月2日 下午7:29
下一篇 2022年3月2日 下午7:43

相关推荐