问题: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))