Я пытаюсь реализовать базовый механизм внимания, применяемый к графикам.Чтобы ускорить процесс, который я построил из матрицы смежности, две новые матрицы L и R. L и R имеют форму (number_of_edges, number_of_nodes), каждая строка из L представляет начальный узел ребра, а R представляет конечный узел.Таким образом я могу рассчитать все коэффициенты внимания одновременно.Ниже вы можете увидеть код.Я также умножаю L и R на весовую матрицу, которую нужно выучить.
LH = broadcast_matmul(self.L, H)
LHws = self.Ws(LH)
RH = broadcast_matmul(self.R, H)
RHwd = self.Wd(RH)
X = LHws + RHwd
scores = self.V(X)
Пока у меня есть все коэффициенты внимания внутри переменной оценки в виде 1d-вектора.Чтобы умножить его на график, мне нужно, чтобы он имел форму матрицы смежности (замените все 1 из смежной матрицы баллами).Здесь возникает моя проблема, как я мог бы сделать это, не нарушая граф вычислений.Я пытался создать новый тензор, но это не сработало.Любые идеи приветствуются.Заранее спасибо.