TensorFlow GPU, CUDA_ERROR_LAUNCH_FAILED on tf.one_hot()
我尝试运行 tf.one_hot,得到 CUDA_ERROR_LAUNCH_FAILED 错误。以下是详细信息:
示例代码:
1 2 3 4 5 6 7 | 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) |
预期结果:
1 2 3 | [array([[ 1., 0., 0.], [ 0., 1., 0.], [ 0., 0., 1.]], dtype=float32)] |
实际结果:
1 2 3 4 5 6 | E c:\\tf_jenkins\\home\\workspace\ elease-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\ elease-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\ elease-win\\device\\gpu\\os\\windows\\tensorflow\\core\\common_runtime\\gpu\\gpu_util.cc:370] GPU sync failed |
电脑配置:
- TensorFlow 0.12.0-rc1
- Python 3.5
- CUDA 8.0
- cuDNN 5.1
- 操作系统:Windows 10
- 显卡: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 中的一个问题。
在我的情况下也留下评论作为答案,因为我没有足够的声誉来发表评论。
您是否在 GitHub 上将此报告为错误?我也可以使用相同的 Tensorflow/OS/Graphics Card/etc
确认此行为
只需将 tf.one_hot() 移至 CPU 即可解决我的问题,即类似于
b = tf.one_hot(a, 123)
我将评论作为"答案",因为我的反馈作为评论太详细了。
我运行了您的样本并得到了以下结果:
1 2 3 4 5 6 7 8 9 10 | I c:\\tf_jenkins\\home\\workspace\ elease-win\\device\\gpu\\os\\windows\\tensorflow\\core\\common_runtime\\gpu\\gpu_device.cc:906] DMA: 0 I c:\\tf_jenkins\\home\\workspace\ elease-win\\device\\gpu\\os\\windows\\tensorflow\\core\\common_runtime\\gpu\\gpu_device.cc:916] 0: Y I c:\\tf_jenkins\\home\\workspace\ elease-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\ elease-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\ elease-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)
我还有其他产生上述错误的代码。在另一台具有类似配置但仅用于 CPU 的 TensorFlow 0.12.0-rc1 版本的计算机上运行它运行良好。我建议您使用该版本的 TensorFlow 测试您的代码。