基于Pytorch Geometric 的图数据构建

1. Tensor张量

1.1 定义

  • Tensor是PyTorch中重要的数据结构,可认为是一个N维数组(array)。Pytorch中大量的计算是通过Tensor格式进行的。
  • 张量分为 n阶(维)张量,与空间维度无关,说明的是数组的维度。

  • 常见的2阶Tensor和3阶Tensor即 2维 和 3维 数组。eg:
>>>torch.zeros(2, 3)
tensor([[0., 0., 0.],
        [0., 0., 0.]])

参考链接1:https://www.jianshu.com/p/314b6cfce1c3
参考链接2:https://zhuanlan.zhihu.com/p/48982978

1.2 Dataframe 和 array

  • 尽量避免使用 df 类型数据,该数据难以索引和进行进一步操作。
  • 灵活使用 数据类型转换的方法,np.array(df)将 df 转为 array数组。
  • 使用 np.reshape()改变数组维度(升维/降维),使用 np.flatten()展成1维数组。

2. 图数据构建

节点和节点之间的边构成了图。在PyTorch Geometric中,如果要构建图,那么需要两个要素:节点和边。
PyTorch Geometric 提供了torch_geometric.data.Data 用于构建图,包括 5 个属性,每一个属性都不是必须的,可以为空。

  • data.x: 用于存储每个节点的特征,形状是[num_nodes, num_node_features]。
  • data.edge_index: 用于存储节点之间的边,形状是 [2, num_edges]。
  • data.pos: 存储节点的坐标,形状是[num_nodes, num_dimensions]。
  • data.y: 存储样本标签。如果是每个节点都有标签,那么形状是[num_nodes, *];如果是整张图只有一个标签,那么形状是[1, *]。
  • data.edge_attr: 存储边的特征。形状是[num_edges, num_edge_features]。

实际上,Data对象不仅仅限制于这些属性,我们可以通过 data.face 来扩展Data,以 张量(tensor) 保存三维网格中三角形的连接关系。
还可以添加其他的属性,如下所示:

data = Data(x=x, edge_index=edge_index)
data.train_idx = torch.tensor([...], dtype=torch.long)
data.train_mask = torch.tensor([...], dtype=torch.bool)
data.test_mask = torch.tensor([...], dtype=torch.bool)

参考链接:https://blog.csdn.net/DSTJWJW/article/details/108961992

posted @   青梧成林2022  阅读(566)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示