2016-11-01 3 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] 

Что я ожидаю m = [2,6]tensorflow ValueError: Форма должна быть рангом 1, но ранг 2

я могу получить результат на Феана или NumPy. Как получить результат с помощью тензорного потока?

+0

Я думаю, что это не проблема с тензорным потоком, событие в python не работает. если вы определяете x, это список, и вы не можете получить доступ к списку по своему усмотрению. Определите x как numpy.array ([[1,2,3], [4,5,6]]), и он будет работать. – Mquinteiro

+0

То же самое с массивом numpy, мой комментарий неправильный. – Mquinteiro

ответ

5

Вы хотели бы использовать tf.gather_nd

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

Надеется, что это помогает.

+0

Спасибо, я использую tf.pack() и tf.gather_nd() получить результат. –

+0

Но тогда я получаю ошибку Gradient для gather_nd не реализован. T_T, Так или иначе, Спасибо. –

Смежные вопросы