解决TF2.0: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize

3个多小时解决TF2.0: Failed to get convolution algorithm. This is probably because cuDNN failed to initialize

在笔记本电脑上搭建的keras深度学习框架中引入卷积层时报错:Failed to get convolution algorithm. This is probably because cuDNN failed to initialize…花了一上午时间,最终解决……
版本信息:
python 3.7.3
CUDA 10.0.130
cuDNN 7.4.2
Tensorflow 2.0.0
Keras 2.3.0

Google+百度发现大家解决该问题有两种方式:
1.CUDA,cuDNN,Tensorflow版本不兼容。主要解决方法是Tensorflow版本太高,需要降版本。(此方法我觉得很麻烦,所以并未尝试)
2.GPU内存不足。需要在代码最前面加几行代码实现对GPU进行按需分配。(然而我尝试了加了各种代码,虽然大同小异,但其他人问题解决了,我的始终没有。)

最终解决办法: 将原有cuDNN 7.4.2版本更换为7.6.5
删掉CUDA bin,include,lib文件夹中原有cuDNN 7.4.2版本拷贝的文件,再将cuDNN 7.6.5版本文件拷贝到相应文件夹中。此时可直接运行Keras和Tensorflow框架中的代码,没有报错。

下面这些全部测试了,都不行。

# 不加这几句,则CONV 报错
# physical_devices = tf.config.experimental.list_physical_devices('GPU')
# assert len(physical_devices) > 0, "Not enough GPU hardware devices available"
# tf.config.experimental.set_memory_growth(physical_devices[0], True)

# from tensorflow.compat.v1 import ConfigProto
# from tensorflow.compat.v1 import InteractiveSession
# config = ConfigProto()
# config.gpu_options.allow_growth = True
# session = InteractiveSession(config=config)


# from tensorflow.compat.v1 import ConfigProto
# from tensorflow.compat.v1 import InteractiveSession
#
# config = ConfigProto()
# config.gpu_options.allow_growth = True
# session = InteractiveSession(config=config)
# from tensorflow.compat.v1 import ConfigProto
# from tensorflow.compat.v1 import InteractiveSession
# config = ConfigProto()
# config.gpu_options.allow_growth = True
# session = InteractiveSession(config=config)
#

# import tensorflow as tf
# config = tf.compat.v1.ConfigProto()
# config.gpu_options.allow_growth = True
# session = tf.compat.v1.InteractiveSession(config=config)
#


# import tensorflow as tf
# import numpy as np
#
# config = tf.ConfigProto()
# config.gpu_options.per_process_gpu_memory_fraction = 0.3
# sess = tf.Session(config = config)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值