解决PyTorch Geometric中GCN网络边连接关系错误:索引超出边界
这个错误是因为在GCN的forward函数中,用到了torch_geometric.utils.scatter函数,而在这个函数中,出现了索引超出边界的错误。根据错误提示,问题出在scatter函数的第二个参数index。根据代码,index应该是一个二维张量,但是在这里,它的维度为1。这可能是由于边连接关系的定义不正确导致的。
边连接关系应该是一个二维张量,每一列表示一条边,包含两个节点的索引。在你给出的边连接关系中,每两个数字表示一条边的两个节点的索引,所以应该将它们重新组织成两行的形式。
正确的边连接关系应该是这样的:
edge_index = torch.tensor([[0, 1, 0, 4, 0, 8, 1, 2, 1, 5, 2, 3, 2, 6, 3, 7, 3, 14, 4, 5, 4, 9, 5, 6, 5, 10, 6, 7, 6, 11, 7, 13, 8, 9, 8, 15, 9, 10, 9, 17, 10, 11, 10, 18, 11, 12, 12, 13, 12, 19, 13, 14, 13, 20, 14, 21, 15, 16, 16, 17, 16, 22, 17, 18, 17, 23, 18, 24, 19, 20, 19, 28, 20, 21, 20, 29, 21, 30, 22, 23, 22, 25, 23, 24, 23, 26, 24, 27, 25, 26, 25, 34, 26, 27, 26, 31, 27, 28, 27, 31, 28, 32, 29, 30, 29, 33, 30, 36, 31, 32, 31, 34, 32, 33, 32, 35, 33, 36, 34, 35, 35, 36]], dtype=torch.long).to(device)
请检查你的边连接关系的定义是否正确,并进行修改。然后重新运行程序,看看是否还会出现相同的错误。
原文地址: https://www.cveoy.top/t/topic/pgHx 著作权归作者所有。请勿转载和采集!