2016-11-01 11 views
5
import tensorflow as tf 
x = [[1,2,3],[4,5,6]] 
y = [0,1] 
z = [1,2] 
x = tf.constant(x) 
y = tf.constant(y) 
z = tf.constant(z) 
m = x[y,z] 

Czego oczekuję jest m = [2,6]tensorflow ValueError: Kształt musi być stopień 1, ale jest ranga 2

mogę uzyskać wynik przez Theano lub numpy. Jak uzyskać wynik za pomocą tensorflow?

+0

Myślę, że to nie jest problem tensorflow, zdarzenie w python nie działa. jeśli zdefiniujesz x jest listą i nie możesz uzyskać dostępu do listy, jak chcesz. Zdefiniuj x jako numpy.array ([[1,2,3], [4,5,6]]) i zadziała. – Mquinteiro

+0

To samo dotyczy tablicy numpy, mój komentarz jest nieprawidłowy. – Mquinteiro

Odpowiedz

5

co chcesz używać tf.gather_nd

slices = tf.gather_nd(x, [y, z]) 

nadzieję, że to pomaga.

+0

Dziękuję, używam tf.pack() i tf.gather_nd() uzyskać wynik. –

+0

Ale wtedy pojawia się błąd Gradientu dla funkcji gather_nd nie jest zaimplementowany. T_T, Tak czy inaczej, dziękuję –

Powiązane problemy