pytorch 笔记:torch_geometric 创建一张图
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch 笔记:torch_geometric 创建一张图相关的知识,希望对你有一定的参考价值。
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视为图
点数量 | |
边数量 | |
点的特征数量 | |
有无孤立点 | 有孤立点的情况: |
有无自环 | 有自环的情况: |
是否是有向图 | 无向图的情况: |
以上是关于pytorch 笔记:torch_geometric 创建一张图的主要内容,如果未能解决你的问题,请参考以下文章