循环图神经网络与图自编码器:原理、实现与应用
1. 循环图神经网络基础
循环图神经网络(Recurrent Graph Neural Networks)在图分析任务中展现出强大的能力。在一些操作中,会对特征进行零填充,使其维度符合要求,代码如下:
zero_pad = torch.zeros((feature.shape[0], self._out_features - feature.shape[1]))
feature = torch.cat([feature, zero_pad], -1)
接着,会根据边的类型数量进行不同的处理:
- 若图只有一种边类型,会执行快速路径,更新节点特征。
if self._n_etypes == 1 and etypes is None:
graph.ndata['h'] = self.linears[0](feature)
graph.update_all(fn.copy_u('h', 'm'), fn.sum('m', 'a'))
a = graph.ndata.pop('a') # (N, D)
- 若图有多种边类型,则会针对每种边类型进行操作。
else:
graph.ndata['h'] = feature
for i in range(self._n_etypes):
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



