subgraph.edata['type'] = self.graph.edata['type'][self.graph.subgraph(nodes).parent_eid]
AttributeError: 'DGLHeteroGraph' object has no attribute 'parent_eid'
这个应该是版本的问题,我查到的结果是:
# 从 0.5 开始,通过 DGL API 提取的子图自动继承父图的节点和边特征。DGL 还保存原始节点/边 ID subg.ndata[dgl.NID] ,
# subg.edata[dgl.EID] 如果节点/边被重新标记。这种新行为使以下 DGLGraph 方法无用,因此我们将其删除:
# DGLGraph.parent, DGLGraph.parent_nid, DGLGraph.parent_eid, DGLGraph.map_to_subgraph_nid, DGLGraph.copy_from_parent, DGLGraph.copy_to_parent 和 DGLGraph.detach_parent.
可以看到dgl.parent_eid被弃用了,那么如何找到父eid呢,上面这段话说了,DGL还保存原始节点和边
subgraph.ndata[dgl.NID] 和subgraph.edata[dgl.EID]