关于Python连接nebula报错

我检查了一下,有个包导入的不一样,您的是import dgl.nn as dglnn,我写成了
import dgl.nn.pytorch as dglnn,我本来想出结果再回复您,但获取数据有点慢,还在等。

另外,还有两个问题:

  1. 下面这个地方为什么要这么做呢?是给这3类边增加一个“he”的属性吧?值的话是随便设置吗?我看您这里填充了1,2和4。
  2. 定义模型时,这个mean是聚合函数?您写了“把边参数作为边权重,以 mean 聚合”,这样是处理过的同构图里是带有edge feature的,我还是没明白这个这里的含义 :joy:

    对了,您这里是用图卷积神经网络吗?需不需要指定卷积核什么的?

老师,我又跑了一遍,还是那样的报错,确定是完全一样的操作

这里是如我在 notebook 里解释的哈,让异构的边能在同构图的 GraphSAGE 跑起来,我没有选择更合适的复杂的模型,图省事儿这么处理了,这样 bit 编码就保有了三类边的信息进去,并且后边作为边的 weight,这个选择其实很拧巴,知识比较好跑通罢了,不要被我影响了哈 :rofl:

就是这个意思哈

你可以换成其他的试试,gcn/pool/lstm,相应 update_all 的部分要把这个边的三个类型信息考虑进去哈,我之前只用了 mean

老师,您看我这么理解对吗:
GraphSage默认针对同构图,且边无 feature 的算法,您的这个例子中,是加入了edge feature(也就是那个he),因为有了边特征he之后不能用官方原始的GraphSage代码,所以您把边参数作为了边权重,以mean去聚合。

那如果我想换个数据集,也有3类边,但是边上有5个属性,可以用这个代码吗?是不是只需要改下面这部分就行:

嗯嗯,是 dgl 上的 GraphSage 没有算边上的 feature,如果你也用 mean 的话,改这里 update_all 应该就行哈,不过效果还是要自己评估一下如何 :smiley:

老师,这个问题我找到原因了,MF.accuracy中需要指定个task,我设置为binary,然后运行,提示说y_hats有两列,但是ys有一列,然后又在model[blocks,x]后面加了个[:,1]:

2 个赞

欢迎来项目 repo PR 增加你的贡献:+1:t2:

给你点赞

1 个赞

谢谢老师!

OKOK

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。