【PYG】简单分析Planetoid()中存储Cora数据集边的数量

  • 分析一下代码生成的数据,edge_index=[2, 10556],10556/2=5278,实际上数据集节点间有5429条边,打印前十条边可以看到(1,2)和(2,1)实际上都存进来了
Data(x=[2708, 1433], edge_index=[2, 10556], y=[2708], train_mask=[2708], val_mask=[2708], test_mask=[2708])
Number of nodes: 2708
Number of edges (directed): 10556
Average node degree: 3.90
Is undirected: True
Edge index shape: torch.Size([2, 10556])
First 10 edges:
tensor([[   0,    0,    0,    1,    1,    1,    2,    2,    2,    2],
        [ 633, 1862, 2582,    2,  652,  654,    1,  332, 1454, 1666]])
  • 分析以下代码输出结果
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(f'Number of nodes: {
     
     data.num_nodes}')
print(f'Number of edges (directed): {
     
     data.num_edges}')

# 检查无向边数量
edge_index = data.edge_index.numpy()
edge_set = set()

print(f"edge_index shape {
     
     edge_index.shape}")

for i in range(edge_index.shape[1]):
    u, v = edge_index[:, i]
    print(f"u {
     
     u}, v {
     
     v}")
    if (v, u) not in edge_set:  # 如果反向边不存在,则添加当前边
        edge_set.add((u, v))
        print(f"add edge_set: {
     
     edge_set}")
    else:
        print(f"not add v {
     
     v}, u {
     
     u}")
    if (i == 9):
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值