python keras CUDNN_STATUS_INTERNAL_ERROR

Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
运行keras加载模型进行预测时,报错细节如下:

2020-04-01 16:06:28.485938: E tensorflow/stream_executor/cuda/cuda_dnn.cc:353] 
Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

  查找资料,我这里可用的办法是在代码加入下面的代码,意思是设置tf会话运行时GPU显存使用量,动态申请显存,设置按需增长。如果不行,还有其他解决办法,比如:调整cudnn版本适配cuda。加油!

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
set_session(tf.Session(config=config))

  验证:未加入修正代码前,加载模型、执行预测显存使用如下,直接冲爆显存,所以报错:
在这里插入图片描述
加入上述代码后,执行同样的操作,显卡使用如下,正常运行预测。但是,资源利用率太低。能运行,姑且这样。
在这里插入图片描述
---------------------------------分割线------------------------------------------
  关于GPU的使用还可以设置GPU显存使用率,添加另外一版代码,通过per_process_gpu_memory_fraction = 0.8设置GPU显存使用率,如下:

import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
config = tf.ConfigProto()
config.gpu_options.per_process_gpu_memory_fraction = 0.8
set_session(tf.Session(config=config))

再次运行相同的加载模型预测过程,显存使用如下。经验证,预测相同数量的样本,速度有提升。
在这里插入图片描述
执行下面代码每隔2秒钟监控一次显存使用情况。

watch -n 2 nvidia-smi 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值