2016-12-13 14 views
3

Ich versuche, tf.one_hot auszuführen, CUDA_ERROR_LAUNCH_FAILED Fehler erhalten. Hier sind die Details:TensorFlow GPU, CUDA_ERROR_LAUNCH_FAILED auf tf.one_hot()

Beispielcode:

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) 

Erwartetes Ergebnis:

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

Tatsächliches Ergebnis:

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 

Config des PC:

  • TensorFlow 0.12.0-rc1
  • Python 3.5
  • CUDA 8.0
  • cuDNN 5.1
  • OS: 10 Windows-
  • GPU: GeForce GTX 970

tf.one_hot laufen ok, wenn läuft auf Linux CPU, Linux GPU (GeForce GTX 660), Windows 10 CPU. Nicht in Ordnung auf der Windows 10-GPU.

Auf der Windows 10 GPU werden tf.matmul, tf.reduce_mean, tf.reduce_sum ok ausgeführt. Aber tf.one_hot ist nicht ok.

Ist das ein Fehler, oder ich vermisse etwas? Vielen Dank.

(Edit 2016.12.16)

Ich habe den Code auf der gleichen Maschine, in Xubuntu, GPU laufen. Der Code läuft gut. Also ich denke das ist ein Problem in TensorFlow-Windows.

Antwort

0

Ich kommentieren als eine "Antwort", da mein Feedback zu detailliert als Kommentar ist.

lief ich Ihre Probe und bekam diese Ergebnisse:

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 

Meine Konfiguration:

  • TensorFlow 0.12.0-rc1 für GPU
  • Python 3.5.2/4.2.0 Anaconda
  • CUDA 8,0
  • cuDNN 5.1
  • OS: Windows 10
  • GPU: GeForce GTX 745 (OEM)

ich anderen Code, der die obigen Fehler produziert. Die Ausführung auf einem anderen Computer mit einer ähnlichen Konfiguration, aber mit der Freigabe TensorFlow 0.12.0-rc1 nur für CPU, läuft einwandfrei. Ich schlage vor, dass Sie Ihren Code mit dieser Version von TensorFlow testen.

3

Auch einen Kommentar als Antwort, in meinem Fall, weil ich nicht genug Ruf zu kommentieren.

Haben Sie dies als Fehler auf GitHub gemeldet?Ich kann auch dieses Verhalten mit der gleichen Tensorflow/O/Grafikkarte/etc

bestätige

Gerade Bewegen das tf.one_hot() an die CPU löst das Problem für mich, also so etwas wie

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

+0

Dank . Veröffentlicht unter https://github.com/tensorflow/tensorflow/issues/6783. – luzi82