Как выполнить операцию группирования в Tensorflow?

#python #tensorflow

#питон #tensorflow

Вопрос:

У меня есть tensor точка данных points , форма которой является (1, #data, #dimension) , и еще одна точка dist , форма которой является (#cluster, 1, #dimension) , и последняя точка cluster , имеет форму (#data, ) , которая указывает индекс кластера, к которому points принадлежит. И теперь я хочу вычислить среднее значение в каждом кластере. Таким образом, ожидаемый результат должен иметь форму (#cluster, 1, #dimension) . Я сделал что-то вроде tf.gather(points, cluster) и получил результат, имеющий форму (#data, #data, #dimension) . Теперь я понятия не имею, как мне с этим справиться. Не могли бы вы, пожалуйста, помочь мне?

Редактировать:

Например, points is [[2, 3], [1, 4], [8, 10]] , а cluster is [1, 0, 2] ожидаемый результат должен быть [[[0,0], [2, 3], [0, 0]], [[1, 4], [0, 0], [0, 0]], [[0, 0], [0, 0], [8, 10]]] таким, чтобы было удобно вычислять среднее значение.

Комментарии:

1. Попробуйте использовать tf.unsorted_segment_sum для суммирования точек, которые имеют одинаковое значение кластера.