简单了解DGL中的数据格式
DGL,作为与PyG齐名的图神经网络框架,拥有独特的数据处理方式。在使用DGL处理图数据前,建议对PyG的数据格式有所了解,以全面掌握图处理技术。
1. DGL数据集:Citeseer网络示例
以Citeseer引文网络为例,它由3,327篇论文构成,分为六类。若论文间存在引用关系,则表示有链接。通过DGL,我们可以加载并查看这个网络:
dgl.data.Citeseer()
输出显示,网络为单一类型,即论文节点,且只有一种类型的边。
2. dgl.DGLGraph:核心数据结构
dgl.DGLGraph是DGL图的基本构建单元,它包含以下属性和方法:
节点类型:如论文节点,仅有一种。
边类型:同样单一。
节点和边集合:通过DGLGraph.nodes()和DGLGraph.edges()获取。
节点信息:如节点特征(feat)存储在ndata中。
3. 构建同质图:dgl.graph()方法
使用dgl.graph()创建同质图,例如:
dgl.graph((U, V), num_nodes=5)
注意,num_nodes必须大于或等于边集合中的最大索引加1,否则可能会出错。
4. 异质图:dgl.heterograph()方法
对于异质图,如用户、主题和游戏之间的关系,可以通过dgl.heterograph()创建,如:
dgl.heterograph({
('user', 'follows', 'user'): edges1,
('user', 'plays', 'game'): edges2
}, {'user': num_users, 'topic': num_topics, 'game': num_games})
同样,指定的节点数目需要满足边索引的最小值加1。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。