pytorch 笔记:torch_geometric (1)创建一张图

1 torch_geometric介绍

        PyTorch geometric 是一个基于pytorch的图网络处理库,里面封装了处理图网络需要用到的基础结构。

         一个单个的图被描述为torch_geometric.data.Data,他有以下属性:

  • data.x (节点的特征)                            shape: [num_nodes, num_node_features]
  • data.edge_index (图的连接情况)        shape: [2, num_edges]
  • data.edge_attr (边的特征)                   shape: [num_edges, num_edge_features]
  • data.y: 节点标签,对于node-level级的任务,该数据形状为[num_nodes, ];对于graph-level级的任务,形状为[, ]
  • data.ydata.posshape:该矩阵表示节点在空间中的位置信息。 [num_nodes, num_dimensions]

2 创建一张图

 我们创建一张这样的有向图

import torch
from torch_geometric.data import Data

2.1 设置点属性

shape = [num_nodes, num_node_features]

 图中有四个节点 v1~v4 每个节点两维特征向量表示,标签y是其类别

x = torch.tensor([[2,1], [5,6], [3,7], [12,0]])
y = torch.tensor([0, 1, 0, 1])

2.2 设置边属性

shape = [2,num_edge]

边的第一个列表表示源节点索引,第二个列表表示目标节点索引

创建的Data对象与顺序无关
 

edge_index = torch.tensor([[0, 1, 2, 0, 3], 
                           [1, 0, 1, 3, 2]])

2.3  构建Graph的数据

data = Data(x=x, y=y,edge_index=edge_index)
data

'''
Data(x=[4, 2], edge_index=[2, 5], y=[4])
说明有向边有5条、节点有4个、每个节点有两个特征
'''

3 Data的属性

3.1 将Data视为字典

keys

data有几个键值

data['x']

查看键值为x的内容(即节点的特征)

键值对

 3.2 将Data视为图

  

点数量
边数量
点的特征数量
有无孤立点

有孤立点的情况:

edge_index = torch.tensor([[0, 1, 1],
                           [1, 0, 1]])

x = torch.tensor([[-1], [0], [1]])

data = Data(x=x, edge_index=edge_index)
data.has_isolated_nodes()
#True
有无自环

有自环的情况:

edge_index = torch.tensor([[0, 1, 1],
                           [1, 0, 1]])

x = torch.tensor([[-1], [0], [1]])

data = Data(x=x, edge_index=edge_index)
data.has_self_loops()
#True
是否是有向图

无向图的情况:

edge_index = torch.tensor([[0, 1, 1, 2],
                           [1, 0, 2, 1]])

x = torch.tensor([[-1], [0], [1]])

data = Data(x=x, edge_index=edge_index)
data.is_directed()#False

  • 11
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值