Разный номер узла в 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.
Эквивалентно ли это использованию только одной партии образцов для модели?
Если да, то как я могу решить проблему?