问题标签 [dgl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
817 浏览

python - 在 DGL 中以节点作为输入,边作为输出的图神经网络

我想修改示例 DGL GATLayer,以便网络可以学习边缘权重,而不是学习节点表示。也就是说,我想构建一个以一组节点特征作为输入并输出边的网络。标签将是一组“真实边缘”,它们表示哪些节点来自一个共同的来源,这样我就可以学习以相同的方式对看不见的数据进行聚类。

我使用以下 DGL 示例中的代码作为起点:

https://www.dgl.ai/blog/2019/02/17/gat.html

我曾希望我可以调整它以简单地返回边缘而不是节点,例如通过替换线

return self.g.ndata.pop('h')

return self.e.ndata.pop('e')

但似乎事情并没有这么简单。我设法让一些东西跑起来,但是损失到处乱窜,没有任何学习发生。

我是图形网络的新手,但一般来说不是深度学习。我想做的事是合理的吗?我是否遗漏了一些对我理解它是如何工作的至关重要的东西?我一直找不到任何易于理解的图网络示例,其中边缘本身就是学习目标,所以我现在有点糊涂。我感谢任何人可以提供的任何帮助!

0 投票
1 回答
207 浏览

octave - 八度音阶的 lsode 函数

我写了下面的代码,它工作了几个星期没有任何问题。突然它停止工作并出现以下错误:

代码是:

有没有人看到错误或我可以改变的东西?

0 投票
2 回答
298 浏览

python - 从 dgl.data.chem 导入 mol_to_bigraph,smiles_to_bigraph 不起作用

我正在研究基于分子的图分类问题。我的数据是 SMILES,我想将其转换为图形并使用 DGL 包构建模型。

我已经在 spyder 中使用pip install dgl安装了 dgl 包,并且!在谷歌 colab 中安装dgl。我可以使用import dgl导入这个包,但是当我使用from dgl.data.chem import mol_to_bigraph, smiles_to_bigraph时,它给了我这个错误:

没有名为“dgl.data.chem”的模块

这里有什么问题?有没有人有修复此错误的经验?谢谢。

0 投票
0 回答
149 浏览

python - 使用 DGL grahSAGE 对 GNN 结果的再现性

我正在使用 graphSAGE 解决节点分类问题。我是 GNN 的新手,所以我的代码基于 GraphSAGE 和 DGL 的分类任务[1][2]的教程。这是我正在使用的代码,它是一个 3 层 GNN,输入大小为 20,输出大小为 2(二进制分类问题):

每次我训练模型(不做任何改变),性能变化很大,准确率在 0.45 和 0.87 之间变化。如何保证结果的重现性?我尝试设置 pytorch seed torch.manual_seed(), numpy seed 并将 drop out 设置为 0 但结果不断变化。这是正常的还是我错过了什么?

0 投票
1 回答
92 浏览

machine-learning - 在节点特征的某些子集上构建 KNN 图

我有一个点云,我想在上面使用图形神经网络。点云中的每个点都以其位置坐标和颜色为特征。所以单个节点是(X, Y, Z, C).

现在我想对此应用边缘卷积(如DGL Edge-Conv 示例中(X, Y, Z)所述,为此我应该在(而不是 C )上构建最近邻图,然后使用所有 4 个属性作为我的特征神经网络。

什么是一种干净有效的方法来做到这一点?(我有很多数据,所以我想很好地批处理和整理)

0 投票
1 回答
887 浏览

python-3.x - 使用特征和邻接矩阵的 numpy 表示构建 networkx/dgl 图

描述

从邻接矩阵生成图形对象(DGL 或 NetworkX)并允许建立节点特征。

结果

我在下面生成我的解决方案。但是,鼓励其他答案。

0 投票
0 回答
17 浏览

dgl - 找不到“gin-supervised-contextpred”、“gin-supervised-edgepred”、“gin-supervised-infomax”的 DGL-LifeSci 训练代码?

我正在使用“预训练图神经网络的策略”github 代码:https ://github.com/snap-stanford/pretrain-gnns 。训练后获得的“model.pth”文件与 DGL-lifesci 分子嵌入代码( https://github.com/awslabs/dgl-lifesci/tree/master/examples/molecule_embeddings )不兼容,作为文件内容不同。

任何人都可以帮助我提供与 DGL-LifeSci 中的 'gin-supervised-contextpred' 、 'gin-supervised-edgepred' 、 'gin-supervised-infomax' 路径文件兼容的训练代码吗?

0 投票
0 回答
14 浏览

pytorch - 关于DGL消息传递和聚合命令串行或并行执行的问题

我的问题是关于 GPU 上 DGL 的消息传递和聚合命令的执行顺序。

我想GatedGraphConv在可能具有许多不同边类型的图上使用一个模块,并且想知道对于apply_edges()下面的任何给定调用,该调用是否只是在 GPU 上调度任务,或者该调用是否阻塞了循环的剩余迭代,直到计算完成后?

这是forward()方法的主循环GatedGraphConv(可在https://docs.dgl.ai/_modules/dgl/nn/pytorch/conv/gatedgraphconv.html#GatedGraphConv找到):

我已经研究过可能在单个 GPU 上使用一组 cuda 流,其中每个流都会被赋予自己的调用apply_edges()(每种不同的边缘类型使用不同的字符串"W_e*h",因此它们不会相互冲突),然后在之前同步它们的调用update_all(),但我想到这可能是矫枉过正,也许调用apply_edges()只是在 GPU 上安排一个任务,然后 GPU 可以自由地以它认为合适的任何方式完成所有预定的任务(包括运行如果可以的话,同时执行多个任务)。

谢谢。

0 投票
0 回答
29 浏览

graph - 0.5版本下如何安装dgl

我是这个领域的新手,想寻求帮助。

我想运行下面的代码:

然后出现错误并告诉我要使用 copy_from_parent() 和 copy_to_parent() 我应该使用 dgl 的版本低于 0.5。

但是,我使用了不同的方法,但仍然无法安装版本低于 0.5 的 dgl。谁能给我一些提示?

最好的问候和 THX 很多!</p>

0 投票
0 回答
143 浏览

python - 在没有深拷贝的情况下构建 dgl 图

我有一个非常大的 numpy ndarry relations。该结构通常用于知识图(头部、关系、尾部)。现在我想从数组中构建一个 dgl-graph。使用框架的功能。我尝试通过执行以下操作来构建图表:

1.

  1. G = dgl.DGLGraph((relations[:,0], relations[:,2]))

这两种尝试都会导致信息的深层复制。因此,使用的 RAM 本身翻了一番。有没有办法通过引用数组而不是复制信息来构建该图?