当前位置: 首页 > news >正文

【PYG】Planetoid中边存储的格式,为什么打印前十条边用edge_index[:, :10]

edge_index 是 PyTorch Geometric 中常用的表示图边的张量。它通常是一个形状为 [2, num_edges] 的二维张量,其中 num_edges 表示图中边的数量。每一列表示一条边,包含两个节点的索引。

  • 实际上这是COO存储格式,官方文档里也有写,还有一种是邻接矩阵的存储格式,两种方式是可以互相转换的 https://pytorch-geometric.readthedocs.io/en/latest/get_started/introduction.html

在这里插入图片描述

edge_index[:, :10] 表示取出 edge_index 张量的前 10 列,即前 10 条边的节点索引。

在 Python 中,使用切片语法 [:,] 是一种方便的方式来选择多维数组或张量的特定部分(另外一部分Python语法知识)

程序输出结果

Data(x=[2708, 1433], edge_index=[2, 10556], y=[2708], train_mask=[2708], val_mask=[2708], test_mask=[2708])
First 10 edges (edge_index[:, :10]):
tensor([[   0,    0,    0,    1,    1,    1,    2,    2,    2,    2],[ 633, 1862, 2582,    2,  652,  654,    1,  332, 1454, 1666]])
edge_index 0: tensor([  0, 633])
edge_index 1: tensor([   0, 1862])
edge_index 2: tensor([   0, 2582])
edge_index 3: tensor([1, 2])
edge_index 4: tensor([  1, 652])
edge_index 5: tensor([  1, 654])
edge_index 6: tensor([2, 1])
edge_index 7: tensor([  2, 332])
edge_index 8: tensor([   2, 1454])
edge_index 9: tensor([   2, 1666])

示例代码

假设你已经使用 PyTorch Geometric 加载了 Cora 数据集,并且 edge_index 已经被定义,以下代码展示如何查看前 10 条边的信息:

import torch
from torch_geometric.datasets import Planetoid
from torch_geometric.transforms import NormalizeFeatures# 加载 Cora 数据集
dataset = Planetoid(root='/tmp/Cora', name='Cora', transform=NormalizeFeatures())# 获取数据集中的第一个图
data = dataset[0]# 打印数据集的基本信息
print(data)# 获取边索引
edge_index = data.edge_index# 打印前 10 条边的节点索引
print("First 10 edges (edge_index[:, :10]):")
print(edge_index[:, :10])for i in range(10):print(f"edge_index {i}: {edge_index[:,i]}")

示例输出

假设 edge_index 的前 10 列如下所示:

tensor([[  0,   1,   2,   3,   4,   5,   6,   7,   8,   9],[  1,   2,   0,   4,   5,   3,   7,   6,   5,   8]])

这表示:

  1. 第一条边是从节点 0 到节点 1。
  2. 第二条边是从节点 1 到节点 2。
  3. 第三条边是从节点 2 到节点 0。
  4. 第四条边是从节点 3 到节点 4。
  5. 第五条边是从节点 4 到节点 5。
  6. 第六条边是从节点 5 到节点 3。
  7. 第七条边是从节点 6 到节点 7。
  8. 第八条边是从节点 7 到节点 6。
  9. 第九条边是从节点 8 到节点 5。
  10. 第十条边是从节点 9 到节点 8。

解释

  • edge_index 的形状为 [2, num_edges],其中 num_edges 表示边的数量。
  • edge_index[:, :10] 表示取出前 10 条边的节点索引。
  • 输出的张量第一行表示每条边的起始节点,第二行表示每条边的结束节点。

通过这种方式,你可以方便地查看和理解数据集中边的表示方式。

http://www.lryc.cn/news/388771.html

相关文章:

  • 【知识图谱系列】(实例)python操作neo4j构建企业间的业务往来的知识图谱
  • 解决MySQL删除/var/lib/mysql下的所有文件后无法启动的问题
  • 探索WebKit的Flexbox奇境:CSS Flexbox支持全解析
  • Unity--协程--Coroutine
  • 详解COB显示屏的技术特点
  • 富唯智能推出的AMR复合机器人铝板CNC上下料方案
  • springcloud-config服务器,同样的配置在linux环境下不生效
  • 写代码,为什么还需要作图?
  • 一句话介绍什么是AI智能体?
  • 32.哀家要长脑子了!
  • Vue2 - 项目上线后生产环境中去除console.log的输出以及断点的解决方案
  • phpword生成PDF
  • Linux进程优先级
  • 每日一题——Python实现PAT乙级1096 大美数(举一反三+思想解读+逐步优化)3千字好文
  • 无锁编程——从CPU缓存一致性讲到内存模型(1)
  • C++编程(七)继承
  • 【ACM_2023】3D Gaussian Splatting for Real-Time Radiance Field Rendering
  • 【TB作品】atmega16 计算器,ATMEGA16单片机,Proteus仿真
  • C++的IO流操作
  • MacOS升级指定Python版本的pip
  • 音频Balance源码总结
  • CesiumJS【Basic】- #043 绘制脉冲线(Entity方式)- 需要自定义着色器
  • Linux命令 wc(word count)-l(lines)用于统计文件中的行数。
  • 数据结构 - C/C++ - 链表
  • sheng的学习笔记-AI-高斯混合模型(GMM)
  • OFDM的缺点与关键技术
  • 电脑录音软件哪个好?7款录制音频工具大盘点,赶快学起来!(2024)
  • 【Android面试八股文】你说你使用Leakcanary进行内存泄漏检测,那你能说一说Leakcanary的原理吗?
  • 蒂升电梯职业性格和Verify认知能力SHL测评答题攻略及薪资待遇解密!
  • window上部署sql server改动端口、和sqlserver的一些还原、批量插入存储过程的命令