我正在尝试实现应用于图的基本注意力机制。为了加快处理过程,我从邻接矩阵构造了两个新矩阵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替换为带有分数的adj矩阵)。我的问题来了,我该如何做到而又不破坏计算图。我试图创建一个新的张量,但这没有用。任何想法都非常受欢迎。预先谢谢你。