DGL使用笔记

DGL

一个基于pytorch的图神经网络库

使用方法

import dgl
import torch as th
g = dgl.graph(([0, 0, 1, 5], [1, 2, 2, 0])) # 6个节点,4条边

上面为创建图的过程,表示节点0->1,0->2,…有一个连接,这里是有向图,通过

bg = dgl.to_bidirected(g)

可将有向图直接转换为无向图,默认是64位整数,通过

edges = th.tensor([2, 5, 3]), th.tensor([3, 5, 0]) 
g32 = dgl.graph(edges, idtype=th.int32)

可将64位整数转换为32位证书。

特征

DGLGraph 对象的节点和边可具有多个用户定义的、可命名的特征,以储存图的节点和边的属性。 通过 ndata 和 edata 接口可访问这些特征。

#以行优先存储特征
g.ndata['x'] = th.ones(g.num_nodes(), 3)        # 长度为3的节点特征
g.edata['x'] = th.ones(g.num_edges(), dtype=th.int32)  # 标量整型特征
#取节点1的x特征
g.ndata['x'][1]

从外部源创建图

DGL支持从networkX或者Scipy中导入数据,也可以从CSV文件、JSON/GML 格式、DGL 二进制格式中导入数据。

异构图

该部分暂时用不到,不作记录

https://docs.dgl.ai/guide_cn/data-process.html

你可能感兴趣的:(Python,DGL,pytorch,图神经网络)