2016-12-13 137 views
3

我嘗試運行tf.one_hot,得到CUDA_ERROR_LAUNCH_FAILED錯誤。下面是詳細信息:TensorFlow GPU,CUDA_ERROR_LAUNCH_FAILED on tf.one_hot()

示例代碼:

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中的一個問題。

回答

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 

我的配置:

  • TensorFlow 0.12.0-RC1的GPU
  • 的Python 3.5.2/4.2.0蟒蛇
  • CUDA 8.0
  • cuDNN 5.1
  • 操作系統:Windows 10
  • GPU:的GeForce GTX 745(OEM)

我有一個產生上述錯誤其它代碼。在另一臺具有類似配置的計算機上運行它,但只有CPU版本的TensorFlow 0.12.0-rc1運行良好。我建議你用該版本的TensorFlow測試你的代碼。

3

也留下評論作爲答案,在我的情況下,因爲我沒有足夠的評論聲望。

你是否曾經報告過這是GitHub上的一個bug?我也可以確認/這種行爲具有相同Tensorflow/OS /顯卡等

只是移動tf.one_hot()的CPU解決了我的問題,即像

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

+0

謝謝。發佈到https://github.com/tensorflow/tensorflow/issues/6783。 – luzi82