PyG笔记

1. 如果把pyg转换成networkx时选择转换成无向图(to_undirected=True),则pyg的每一组edge_index一定要先写index小的node,再写index大的node,否则该条边会被直接忽略掉。

例1:转成有向图,正确

x = torch.tensor([[-1], 
                  [0], 
                  [1]], dtype=torch.float)
edge_index = torch.tensor([[0, 1],
                           [1, 2]], dtype=torch.long)

data = Data(x=x, edge_index=edge_index)

G1 = to_networkx(data, to_undirected=False)  # 有向图
nx.draw(G1)
plt.show()


 例2:转成无向图,每条边用“index小的节点” → “index大的节点”,正确

x = torch.tensor([[-1], 
                  [0], 
                  [1]], dtype=torch.float)
edge_index = torch.tensor([[0, 1],
                           [1, 2]], dtype=torch.long)

data = Data(x=x, edge_index=edge_index)

G2 = to_networkx(data, to_undirected=True)  # 无向图
nx.draw(G2)
plt.show()


 例3:转成无向图,把第一条边从 0→1改成了1→0,出错!

x = torch.tensor([[-1], 
                  [0], 
                  [1]], dtype=torch.float)
edge_index = torch.tensor([[1, 1],
                           [0, 2]], dtype=torch.long)  # 调换了第一条边两个node的顺序

data = Data(x=x, edge_index=edge_index)

G3 = to_networkx(data, to_undirected=True)  # 无向图
nx.draw(G3)
plt.show()

2. 把data放在GPU上的代码:(注意:该函数返回的是这个对象自己)

device = torch.device('cuda')
data = data.to(device)  # 或者直接 data.to(device)即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值