TF-GNN踩坑记录(一)

2022-11-16,,

引言

Batch size作为一个在训练中经常被使用的参数,在图神经网络的训练中也是必不可少,但是在TF-GNN中要求使用 merge_batch_to_components() 把batch之后的图合并成一张图。表现如下图:

通过上图可以看出,在merge之后的图中的点序号被重新按照顺序编号,同时边的序号也和点序号一样重新编号,且可以发现子图与子图之间并没有新增边的连接,需要注意的是对于图的size,merge只是连接了每个子图的size而不是以加法的形式增加size。

问题

由于需要在edge pooling中使用attention机制,并且尝试自己实现attention机制,需要获取到图的节点数量,然而发现在图数据经过merge_batch_to_components() 之后,无法通过正常的方式获取到图的节点数量,通过阅读TF-GNN的源代码发现,TF-GNN提供了另外一种方式获取图的节点数量。

adjacency = graph.edge_sets[edge_set_name].adjacency
node_set =graph.node_sets[adjacency.node_set_name(self.tag)]
total_node_count = node_set.spec.total_size
if total_node_count is None:
total_node_count = node_set.total_size

TF-GNN踩坑记录(一)的相关教程结束。

《TF-GNN踩坑记录(一).doc》

下载本文的Word格式文档,以方便收藏与打印。