在tf.one_hot()上的TensorFlow GPU,CUDA_ERROR_LAUNCH_FAILED

时间:2016-12-13 07:14:56

标签: tensorflow

我尝试运行tf.one_hot,得到CUDA_ERROR_LAUNCH_FAILED错误。以下是详细信息:

示例代码:

import tensorflow as tf
idx_0 = tf.placeholder(tf.int64, [None])
mask = tf.one_hot(idx_0, 3, axis=-1)
sess = tf.Session()
sess.run(tf.global_variables_initializer())
a = sess.run([mask],feed_dict={idx_0:[0,1,2]})
print(a)

预期结果:

[array([[ 1.,  0.,  0.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.]], dtype=float32)]

实际结果:

E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_driver.cc:1177] could not synchronize on CUDA context: CUDA_ERROR_LAUNCH_FAILED :: No stack trace available
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_event.cc:49] Error polling for event status: failed to query event: CUDA_ERROR_LAUNCH_FAILED
F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_util.cc:370] GPU sync failed

PC的配置:

  • TensorFlow 0.12.0-rc1
  • Python 3.5
  • CUDA 8.0
  • cuDNN 5.1
  • 操作系统:Windows 10
  • GPU:GeForce GTX 970

tf.one_hot在Linux CPU,Linux GPU(GeForce GTX 660),Windows 10 CPU上运行时运行正常。在Windows 10 GPU上不行。

在Windows 10 GPU上,tf.matmul,tf.reduce_mean,tf.reduce_sum运行正常。但是tf.one_hot不行。

这是一个错误,还是我想念一些东西?感谢。

(编辑2016-12-16)

我已经在同一台机器上运行代码,在Xubuntu,GPU中。代码运行正常。所以我认为这是TensorFlow-Windows中的一个问题。

2 个答案:

答案 0 :(得分:4)

在我的案例中也留下评论作为答案,因为我没有足够的声誉来发表评论。

您是否将此报告为GitHub上的错误?我也可以用相同的Tensorflow / OS /图形卡/等确认这种行为

将tf.one_hot()移动到CPU可以解决我的问题,例如

with tf.device('/cpu:0'): b = tf.one_hot(a, 123)

答案 1 :(得分:0)

我正在评论作为答案'因为我的反馈过于详细而不是评论。

我运行了你的样本并得到了这些结果:

I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:906] DMA: 0 
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:916] 0:   Y 
I c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 745, pci bus id: 0000:01:00.0)
E c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\stream_executor\cuda\cuda_event.cc:49] Error polling for event status: failed to query event: CUDA_ERROR_LAUNCH_FAILED
F c:\tf_jenkins\home\workspace\release-win\device\gpu\os\windows\tensorflow\core\common_runtime\gpu\gpu_event_mgr.cc:198] Unexpected Event status: 1

我的配置:

  • 适用于GPU的TensorFlow 0.12.0-rc1
  • Python 3.5.2 / Anaconda 4.2.0
  • CUDA 8.0
  • cuDNN 5.1
  • 操作系统:Windows 10
  • GPU:GeForce GTX 745(OEM)

我有其他代码会产生上述错误。在具有类似配置但使用TensorFlow 0.12.0-rc1仅用于CPU的另一台计算机上运行它可以正常运行。我建议您使用该版本的TensorFlow测试您的代码。