del new_edge_index,new_edge_attr;gc.collect() 因为涉及到强制转化为双向图(无向图是用双向等edge features/attr图表示的),所以会有一个edge_attr的reduce的聚合操作。主要是因为: 1 本身是有向图我们就是想把他当作无向图来处理,那么edge features必然得进行聚合计算,比如A->B的edge weight为0.1,B->A的...
['edge_weight', 'edge_attr', 'edge_index'] pyg_G.edge_weight:返回边权重(tensor array) >>pyg_G.edge_weighttensor([1.,2.,3.,4.,5.,6.,7.]) .edge_attr:返回边的特征矩阵(tensor array) >>pyg_G.edge_attrtensor([[11.,11.,11.,11.],[22.,22.,22.,22.],[33.,33.,33.,33...
通常,一个图至少包含x, edge_index, edge_attr, y, num_nodes 5个属性,当图包含其他属性时, 我们可以通过指定额外的参数使Data 对象包含其他的属性 import collections class Data(object): def __init__(self, x=None, edge_index=None, edge_attr=None, y=None, **kwargs): """ Args: x (Tensor...
['edge_index_i'] = edge_index.storage.row() out['edge_index_j'] = edge_index.storage.col() out['ptr'] = edge_index.storage.rowptr() if out.get('edge_weight', None) is None: out['edge_weight'] = edge_index.storage.value() if out.get('edge_attr', None) is None: out[...
edge_index (LongTensor, optional): 边索引矩阵,大小为`[2, num_edges]`,第0行为尾节点,第1行为头节点,头指向尾 edge_attr (Tensor, optional): 边属性矩阵,大小为`[num_edges, num_edge_features]` y (Tensor, optional): 节点或图的标签,任意大小(,其实也可以是边的标签) ...
edge_attr (Tensor, optional): 边属性矩阵,大小为`[num_edges, num_edge_features]` y (Tensor, optional): 节点或图的标签,任意大小(,其实也可以是边的标签) """ self.x=x self.edge_index=edge_index self.edge_attr=edge_attr self.y=y ...
edge_attr - 边特征矩阵,形状为:[num_edges, num_edge_features] y (Tensor) - 图或节点的目标矩阵(尺寸可以是 [num_nodes, *] 或 [1, *] ) pos - 节点位置矩阵……我没搞懂这是个什么。形状为:[num_nodes, num_dimensions] 直接以attribute名为索引可以调出对应的attribute矩阵。示例代码: ...
@dataclass class DataEdgeAttr(EdgeAttr): r"""Edge attribute class for `Data` without edge type.""" def __init__( self, layout: Optional[EdgeLayout] = None, is_sorted: bool = False, size: Optional[Tuple[int, int]] = None, ): super().__init__(None, layout, is_sorted, size)...
data.edge_attr: 形状为[num_edges, num_edge_features]的边特征矩阵。 data.y: 训练的目标,形状为[num_nodes, *]的节点水平的目标或者形状为[1, *]的图水平的目标。 data.pos: 形状为[num_nodes, num_dimensions]节点位置矩阵。 这些性状都不是必须的。实际上,Data对象甚至不限制这些属性。我们可以用data...
(data.x, data.edge_index, data.edge_attr)) 47 weight = normalized_cut_2d(data.edge_index, data.pos) ---> 48 cluster = graclus(data.edge_index, weight, data.x.size(0)) 49 data.edge_attr = None 50 data = max_pool(cluster, data, transform=transform) ~/miniconda3/envs/torch/...