В NumPy, мы можем сделать это:TensorFlow - NumPy подобный тензор индексации
x = np.random.random((10,10))
a = np.random.randint(0,10,5)
b = np.random.randint(0,10,5)
x[a,b] # gives 5 entries from x, indexed according to the corresponding entries in a and b
Когда я пытаюсь что-то эквивалент в TensorFlow:
xt = tf.constant(x)
at = tf.constant(a)
bt = tf.constant(b)
xt[at,bt]
В последней строке «Плохой тензор индекса среза исключение. Кажется, TensorFlow не поддерживает индексирование, как numpy или Theano.
Кто-нибудь знает, существует ли способ TensorFlow (индексирование тензора произвольными значениями). Я видел часть tf.nn.embedding, но я не уверен, что они могут быть использованы для этого, и даже если это возможно, это огромное решение для чего-то такого простого.
(Прямо сейчас, я кормлю данные из x
в качестве входных данных и делать индексацию в NumPy, но я надеялся поставить x
внутри TensorFlow, чтобы получить более высокую эффективность) комментарий
эта проблема, похоже, касается именно этого: https://github.com/tensorflow/tensorflow/issues/206 – LDGN