AI智能
改变未来

Keras和TensorFlow中failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED问题解决

问题:failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED

(1)首先判断tensorflow-gpu是否可以正常使用

找一个用到GPU的小例子运行,运行的同时打开另一个窗口,用nvidia-smi -l  循环查看GPU的使用情况。如果GPU显示正常使用,就说明TensorFlow环境是没问题的,可以正常使用GPU。

(2)资源冲突

那么可以推测,出现这个报错,是代码本身的原因,而报错涉及GPU,那就应该是资源引起的冲突。资源冲突最常见的是有其他代码在占用GPU,我们可以使用ps -a查看进程,,然后使用kill -9 gpu进程号 杀掉自己其他占用资源的进程。还有问题的话,再猜测其他原因

(3)申请显存超过显卡的上限

运行示例代码时,可以正常使用GPU,但是在运行某些代码时,会出现,failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED 的问题,排除上述问题后,可能是由于显存不够而造成的。以下为TensorFlow和Keras解决这个问题的方法。

 

1、TensorFlow

在使用sess前,加上如上的配置。

[code]config = tf.ConfigProto()config.gpu_options.allow_growth = Trueconfig.gpu_options.per_process_gpu_memory_fraction = 0.8with tf.Session(config=config)) as sess:#具体的代码

 

2、Keras

参考链接:https://www.csdn.net/gather_2c/MtTaQg2sNzQyMjctYmxvZwO0O0OO0O0O.html

[code]import osimport tensorflow as tffrom keras.backend.tensorflow_backend import set_sessionos.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0\"config = tf.ConfigProto()config.gpu_options.allow_growth = Trueconfig.gpu_options.per_process_gpu_memory_fraction = 0.8set_session(tf.Session(config=config))

 

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Keras和TensorFlow中failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED问题解决