deepsnap

deepsnap

什么是 deep snap?

DeepSNAP is a Python library to assist efficient deep learning on graphs. DeepSNAP features in its support for flexible graph manipulation, standard pipeline, heterogeneous graphs and simple API.

是一个Python函数库,用来帮助我们在图(graphs)上面进行有效率的深度学习,它支持图的操作,标准化流程,异构图和简单的API

类似的工具包有 PyTorch Geometric, DGL, GraphNets。

一些比较重要的 module!

img

deepsnap.batch

img

大概意思应该是说 Batch 类可以将一批 Graph 集合成一个大的(不连接的)图,但是具体的用法官方文档上没讲.

deepsnap.dataset

img

GraphDataset 类

classGraphDataset(graphs: Optional[List[deepsnap.graph.Graph]] = None,...)

  • graphs (list, optional) – A list of deepsnap.graph.Graph.

用来存放图数据集列表

Generator 类

img

能够动态地生成各种图(ER graphs 等等,可以用 ERGenerator类 继承 Generator类 然后去重写 generate() 方法,generate() 方法中定义了图的产生方式

EnsembleGenerator 类

img

根据传进去的 generators 列表以 gen_prob 的概率生成 dataset_len 长度的图数据集。

重头戏来了:deepsnap.Graph 的格式

img

文档中说 Graph.GNetworkX or SnapX graph object

在代码中输出

print(type(dataset[0].G))

output:
<class 'networkx.classes.graph.Graph'>

发现它确实是一个 networkx 包定义的 graph,于是我去找 networkx 包

那么要如何生成 network 的 graph 呢?

networkx官网上有讲如何生成一张空的图,并往图中加节点和边,明天再看看

posted @ 2022-10-20 22:36  小夏虫  阅读(146)  评论(2编辑  收藏  举报