Tensorflow CUBLAS_STATUS_ALLOC_FAILED 错误

Tensorflow CUBLAS_STATUS_ALLOC_FAILED error

Tf version: 1.6.0 GPU  
Os: Windows 10 64bit  
CUDA: 9.0  
CUDNN: 7.0.5 for CUDA 9.0  
GPU: GeForce GTX 1070  
GPU version: 385.54  
RAM: 23.95GB  
CPU: Intel i7-3770k @3.50GHz  
Python version: 3.6.4

我正在处理的代码上周可以运行,但现在不行了。网络相关代码没有做改动
导入或初始化没有问题,但是当 TF 开始训练时我 运行 遇到了一些问题。当它执行一个小批量并设置 q_target.

时看起来会发生

执行的代码是:

q_target = self.target_net.y.eval(feed_dict={self.target_net.x: next_state})

target_net是一个卷积神经网络。

target_net.y shape=(None, 18) dtype=float32  
target_net.x shape=(None, 720, 600, 4) dtype=float32 

较小的图像和 x 形状仍然会产生错误。

我得到的错误代码如下:

2018-03-22 15:20:10.452238: E C:\tf_jenkins\workspace\rel-win\M\windows- gpu\PY\tensorflow\stream_executor\cuda\cuda_blas.cc:443] failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED
2018-03-22 15:20:10.452669: E C:\tf_jenkins\workspace\rel-win\M\windows- gpu\PY\tensorflow\stream_executor\cuda\cuda_blas.cc:443] failed to create cublas handle: CUBLAS_STATUS_ALLOC_FAILED
2018-03-22 15:20:11.379190: E C:\tf_jenkins\workspace\rel-win\M\windows- gpu\PY\tensorflow\stream_executor\cuda\cuda_dnn.cc:385] could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
2018-03-22 15:20:11.379442: E C:\tf_jenkins\workspace\rel-win\M\windows- gpu\PY\tensorflow\stream_executor\cuda\cuda_dnn.cc:352] could not destroy cudnn handle: CUDNN_STATUS_BAD_PARAM
2018-03-22 15:20:11.379676: F C:\tf_jenkins\workspace\rel-win\M\windows- gpu\PY\tensorflow\core\kernels\conv_ops.cc:717] Check failed: stream- >parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)`

编辑:CPU 版本的 TF 工作正常。没问题。所以这只是 GPU 版本的问题。我更喜欢使用 GPU,因为最高水平的效率很重要。

降低 per_process_gpu_memory_fraction 设置似乎有效!

tf_config = tf.ConfigProto()
tf_config.gpu_options.per_process_gpu_memory_fraction = 0.99
with tf.Session(config=tf_config) as sess: