PyTorch Geometric 中提供了一种使用多种属性表示图的数据类型 Data
class Data(x=None, edge_index=None, edge_attr=None, y=None, pos=None, normal=None, face=None, **kwargs)
x:tensor 类型,表示形状为 [num_nodes, num_node_features] 的结点的特征矩阵,默认为 None(num_nodes 为结点数,详见类属性部分)
edge_index:long tensor 类型,表示形状为 [2, num_edges] 的图的连接性矩阵,即表示边的矩阵,默认为 None(对于无向边,通过定义两个方向的边实现)
edge_attr:tensor 类型,表示形状为 [num_edges, num_edge_features] 的边的特征矩阵,默认为 None
y:tensor 类型,任意形状的图或结点的标签,默认为 None
pos:tensor 类型,表示形状为 [num_nodes, num_dimensions] 的结点的位置矩阵
normal:tensor 类型,表示形状为 [num_nodes, num_dimensions] 的法向量矩阵
face:long tensor 类型,表示形状为 [3, num_faces] 的面邻接矩阵
**kwargs 为 其他参数
类属性
keys:返回所有图属性的名称
num_edges:返回边的数量
num_edge_features:返回边的特征数
num_nodes:返回结点的数量(建议显式指定结点数量)
num_node_features:返回结点的特征数
num_features:num_node_features 的别名
num_faces:返回网格的面数
类方法
from_dict(dict):从 python 的 dict 创建 Data 对象
is_coalesced():判断边索引是否有序且不包含重复项,如果是返回 True
is_directed():判断图的边是否是有向的,如果是返回 True
is_undirected():判断图的边是否是无向的,如果是返回 True
to(device, *keys, **kwargs):对所有属性 *keys 执行数据类型和/或设备的转换,若 *keys 未指定,则应用于所有现有属性
apply(func, *keys):将函数 func 应用于所有张量属性 *keys,若 *keys 未指定,则应用于所有现有属性
coalesce():对边索引进行排序并移除冗余项
contains_isolated_nodes():判断图中是否包含孤立结点,如果包含返回 True
contains_self_loops():判断图中是否自环,如果包含返回 True
contiguous(*keys):确保所有属性 *keys 的连续内存布局,若 *keys 未指定,则确保所有现有属性都具有连续的内存布局