dgl-cuda11.6(0.9.1版本)利用scipy.sparse,新建异构图

随手笔记前言

dgl-cuda11.6(0.9.1版本)利用scipy.sparse,新建异构图


一、写该随手目的?

dgl从0.4.1以后的版本之后,就不能利用稀疏矩阵和Networkx新建异构图了。现随笔记录下如何用的版本,利用sparse添加异构图。
在这里插入图片描述

二、随手笔记内容

1.代码

import os
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'


# 使用DGL构建二分图
import dgl
import torch
import networkx as nx
from scipy.sparse import coo_matrix
import scipy
import matplotlib.pyplot as plt

# dgl.from_scipy()
# dgl.from_networkx()


from scipy.sparse import csr_matrix

spg = scipy.sparse.random(4, 5, density=0.3)

print(spg)
print(torch.tensor(spg.row))
print(torch.tensor(spg.col))
print(torch.tensor(spg.data))
print('----------------')
print(spg.T)

# g1 = dgl.bipartite_from_scipy(spg, utype='A', etype='AB', vtype='B', eweight_name='W1')
# g2 = dgl.bipartite_from_scipy(spg.T, utype='B', etype='BA', vtype='A', eweight_name='W2')
# print(g1.canonical_etypes[0])
# print(g1.srcnodes('A'))
# print(g1.dstnodes('B'))
# print(g1.edges['AB'].data['W1'])
#
# print(g2.canonical_etypes[0])
# print(g2.srcnodes('B'))
# print(g2.dstnodes('A'))
# print(g2.edges['BA'].data['W2'])


hg = dgl.heterograph({
    ('A', 'AB', 'B'): (torch.tensor(spg.row), torch.tensor(spg.col)),
    ('B', 'BA', 'A'): (torch.tensor(spg.T.row), torch.tensor(spg.T.col))
})

hg.edges['AB'].data['W1'] = torch.tensor(spg.data)
hg.edges['BA'].data['W2'] = torch.tensor(spg.T.data)

print(hg)

2.展示结果

在这里插入图片描述


总结

以上为dgl-cuda11.6(0.9.1版本)利用scipy.sparse,新建异构图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值