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:
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: