Как составить карту моста?Python

Программы на Python
Ответить
Anonymous
 Как составить карту моста?

Сообщение Anonymous »

Предположим, num_classes = пакетный_размер = N

Код: Выделить всё

mention_embeddings = [M, dim]

class_index = [M, 1] # (already sorted by the number of mention in the cluster) .
# E.g [0,0,0,1,1,2,3,4...] means 3 first mentions have the same class and so on.

# Note: max(class_index) = N - 1 as we have N classes and M >= N

Кроме того, у меня есть:

Код: Выделить всё

positive_labels # has shape of [N, 1]
negative_labels # has_shape of [N, 1]
Здесь есть небольшая хитрость: позитивные метки не имеют той же формы, что и упоминание_embeddings, но вы можете вывести положительную метку каждого упоминания путем дублирования индексации (или чего-то еще). звонил)

Код: Выделить всё

positive_labels = positive_labels[class_index] -> [M, 1] 
Каждый класс может иметь несколько кластеров. После обнаружения кластеров каждого класса у меня есть:

Код: Выделить всё

cluster_index = [M, 1] # an array indicates which mention index are in the same cluster.
# E.g [0, 1, 0, 2, 3, 3, .... ] means mention at index 0, and 2 are the same cluster,...

num_clusters = torch.unquie(cluster_index) # -> K cluster. N  from [N, 1] => [M, 1]
positive_labels = positive_labels[cluster_label_index] # choose K indices from M indices from [M, 1] => [K, 1]
Меня просто беспокоит, имеет ли он последовательный порядок между встраиваниями кластера и соответствующими им положительными и отрицательными метками.
Я это вижу в этом подходе мне нужно назвать метку кластера по индексу от 0 -> K-1, поэтому, когда я вычисляю встраивания кластера с помощью метода index_add_, он агрегируется по индексу в кластере_index 0 -> K-1
А еще вот эта строка кода:

Код: Выделить всё

 cluster_label_index = torch.cat([item.view(-1, )
for item in cluster_label_index_mapping.values()]
)
Я не уверен, что unique_label в torch.unique(cluster_index) всегда дает мне одинаковый порядок от 0 -> K-1 (или у меня есть чтобы отсортировать его)
Этот подход довольно длинный и непростой :) но с помощью class_index для указания класса упоминания (поскольку количество упоминаний в каждом классе не является то же самое, поэтому я не могу сохранить его в 2D тензор), я экономлю много памяти (вместо заполнения и сильно усложняю расчет встраивания кластера). Что вы думаете? или у вас есть другие идеи?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ge-mapping
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»