You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyTorch Geometric中构建含多边的银行账户转账图?

你的实现是正确的

你的代码思路完全符合PyTorch Geometric处理多重复边的要求,正好适配同一账户间多次转账的场景,具体说明如下:

  • 关于edge_index:PyTorch Geometric允许同一对节点之间存在多条边,你的edge_index第一行是转账发起方(源节点),第二行是接收方(目标节点),三个[0,1]的配对完美对应账户A到账户B的三次转账操作。
  • 关于edge_attr:每个子列表对应一条边的属性(如转账时间、金额),只要列表长度和边的数量一致,就能正确绑定每条转账的特征,这个设计是合理的。

注意事项

需要把所有数据转换为PyTorch张量(Tensor),否则Data类会报错。以下是修正后的可运行示例:

import torch
from torch_geometric.data import Data

# 节点特征:假设每个节点用唯一标识表示账户
x = torch.tensor([[0], [1]], dtype=torch.float)
# 边索引:3次从账户0到账户1的转账
edge_index = torch.tensor([[0, 0, 0],
                           [1, 1, 1]], dtype=torch.long)
# 边属性:每条边对应转账时间、金额(示例数据)
edge_attr = torch.tensor([[1620000000, 100],
                          [1620086400, 200],
                          [1620172800, 300]], dtype=torch.float)

# 构建图数据对象
data = Data(x=x, edge_index=edge_index, edge_attr=edge_attr)

验证图结构

可以通过打印data对象查看关键信息:

print(data)
# 输出:Data(x=[2, 1], edge_index=[2, 3], edge_attr=[3, 2])

其中edge_index=[2, 3]表示有3条边,edge_attr=[3,2]表示每条边有2个特征,完全符合多次转账的场景。

内容的提问来源于stack exchange,提问作者陈arvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 20:45:06