0

在用于创建消息传递网络的 PyTorch 几何教程中,在解释类的作用时,他们在开头有这一段:

MessagePassing(aggr="add", flow="source_to_target", node_dim=-2):定义要使用的聚合方案("add", "mean" or "max")和消息传递的流向(或者"source_to_target""target_to_source")。此外,该node_dim属性指示沿哪个轴传播。

我不明白这node_dim是指什么,以及为什么它是-2。我查看了该类的文档MessagePassing,它在那里说它是传播的轴——这仍然没有真正阐明我们在这里做什么以及为什么默认值为 -2(大概这就是你传播信息的方式在节点级别)。有人可以向我解释一下吗?

4

1 回答 1

1

参考herehere后,我认为与它相关的东西是'message'函数的输出
在大多数情况下,输出的形状是[edge_num, emb_out],如果我们将其设置node_dim为 -2,这意味着我们将沿着edge_num目标节点的使用索引进行聚合。
这正是从源节点聚合信息的过程。
聚合后的结果是[node_num, emb_out]

于 2021-08-26T02:57:50.433 回答