Разный номер узла в mini_batch

Я новичок в графических нейронных сетях, и я тренирую модель GNN, используя внимание к себе, и у меня есть несколько вопросов.

Вопрос в том, что количество моих узлов и node_num различаются в каждой партии, так что в первой партии у меня есть:

Пакет (пакет = [1181], edge_attr = [1975, 3], edge_index = [2, 1975], x = [1181, 300])

во второй партии у меня есть:batch=[1134], edge_attr=[1635, 3], edge_index=[2, 1635], x=[1134, 300]

В пакете 1 был 1181 узел, а в пакете 2 — 1134 узла.

Когда я попытался вычислить собственное внимание между узлами, я столкнулся со следующей проблемой.

Вот как работает внимание к себе

введите описание изображения здесь

Q, W, K рассчитываются следующим образом:введите здесь описание изображения

размерность wq, wk, wv равна

self.w_1 = Param (torch.Tensor (self.nodes_num, self.nodes_num))

Так что проблема у меня вот в чем

в пакете1 размерность wq, wk, wv равна self.w_q = Param(torch.Tensor(1181, 1181)) в пакете2 размерность wq, wk, wv равна self.w_q = Param(torch.Tensor(1134, 1134)) Размеры зависят от количества узлов, что приводит к постоянному переопределению w_q.

Эквивалентно ли это использованию только одной партии образцов для модели?

Если да, то как я могу решить проблему?

0 ответов

Другие вопросы по тегам