Fail to find the dnn implementation.

Tensorflow2 LSTM "Fail to find the dnn implementation."

一、问题抛出过程

    在使用Tensorflow2-gpu版本实现 LSTM 情感分析案例时,模块的导入,数据集的下载,以及模型的搭建均无异常,
最后在训练模型时抛出异常"Fail to find the dnn implementation."。查看terminal具体报错如下:

2021-12-21 12:06:27.579335: E tensorflow/stream_executor/cuda/cuda_dnn.cc:329] Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2021-12-21 12:06:27.579379: W tensorflow/core/framework/op_kernel.cc:1753] OP_REQUIRES failed at cudnn_rnn_ops.cc:1510 : Unknown: Fail to find the dnn implementation.

二、问题分析

    第一句:Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR看起来像是cudnn版本问题。
在运行环境中输入命令 conda list 查看各依赖安装以及安装版本。

在这里插入图片描述
在这里插入图片描述

    对照版本要求,没有发现异常, 排除环境问题。                                                                                                                            

在这里插入图片描述

    nvidia-smi 查看 gpu 状态及资源消耗情况。

在这里插入图片描述

    可以看到 5915 进程占用内存比较大, kill -9 5915 杀死进程, 然后重启一下环境。尝试再次运行代码,
依然存在相同的报错。判断异常与 gpu 内存无关。
	回头再细心看一下 terminal 第一句报错:
	Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
	经过前面操作,我们已经排除后半句:CUDNN_STATUS_INTERNAL_ERROR 问题
	现在我们来关注前半句:**Could not create cudnn handle**,无法创建句柄,要么是cudnn安装问题,
要么是创建方式不对。上面我们已经排查过安装,没有问题,那么我们接下来从创建方式入手来解决一下:
physical_devices = tf.config.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(physical_devices[0], enable=True)

	在代码 import 后面加入以上两句,意思是自动为代码分配需要的 gpu 内存。修改代码后,先杀死当前代码所使用的进程,
重启环境,然后再次运行修改后的代码。异常已经被消除,开始正常训练。

在这里插入图片描述

三、总结

	遇到问题不要着急着按照网上的办法随便尝试,尤其是当问题涉及到环境安装时,一定要慎重。笔者注意到网上
很多的对这个问题的解决方法是重装驱动和依赖,具体效果如何不知道,但估计风险很大,弄不好整个环境都会被破
坏。学会鉴别有用信息也是一项重要的技能呀。
	**如果内容对你有用,不妨点个赞再走啦~**
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值