Подтвердить что ты не робот

Сортировка массива в TensorFlow

Предположим, у меня есть массив в TensorFlow:

[ 0.12300211,  0.51767069,  0.13886075,  0.55363625],
[ 0.47279349,  0.50432992,  0.48080254,  0.51576483],
[ 0.84347934,  0.44505221,  0.88839239,  0.48857492],
[ 0.93650454,  0.43652734,  0.96464157,  0.47236174], ..

Я хотел бы отсортировать этот массив по третьему столбцу. Как мне это сделать? Я могу отсортировать каждый столбец по отдельности, используя tf.nn.top_k(), который дает мне отсортированные значения и соответствующие индексы. Я мог бы использовать индексы этой третьей колонки, чтобы изменить порядок других, но я не могу найти переупорядочение Op.

Предполагая, что я хочу держать вещи в графике (без махинаций Python):

  • Как мне отсортировать (приведенный выше массив) в TensorFlow?
  • Как мне переупорядочить в TensorFlow, когда у меня есть индексы для переупорядочения?
4b9b3361

Ответ 1

Следующие работы:

a = tf.constant(...) # the array
reordered = tf.gather(a, tf.nn.top_k(a[:, 2], k=4).indices)