基于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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人