2016-11-19 7 views
1

Der folgende Code funktioniert leider nicht in Tensorflow arbeiten:Tensorflow: Index entlang angegebenen Dimension

id_translation = tf.argmax(z_pi_translation,1) 
translations = z_mu_translation[:,id_translation,:] 

So ist die id_translation op wählt den Index und diese Zahl sollte einen anderen Tensor Index verwendet werden. Ich habe mich gefragt, ob ich nicht sicher bin, wie man es benutzt, das sollte relativ einfach sein, denke ich. Vorschläge zur Indizierung?

Edit: machte ich einen kleinen Code-Beispiel, das das Problem reproduziert:

sess = tf.InteractiveSession() 

z_pi_translation = tf.random_normal([100,20]) 
z_mu_translation = tf.random_normal([100,20,3]) 

id_translation = tf.argmax(z_pi_translation,1) 
translations = z_mu_translation[:,id_translation,:] 

sess.run(translations) 
+0

Warum funktioniert dieser Code Arbeit in tensorflow? Ich habe ein kleineres Beispiel gemacht und es funktioniert. Welchen Fehler bekommst du? – sygi

+0

Fehler ist: ValueError: Shapes müssen gleichrangig sein, aber sind 1 und 0 \t Von Form 1 mit anderen Formen zusammenführen. – Derk

Antwort

0

tf.slice(z_mu_translation, tf.concat(0, [[0], id_translation], [0]), [-1, -1, -1]) Versuchen

Verwandte Themen