#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
для суммирования точек, которые имеют одинаковое значение кластера.