问题标签 [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.
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')
但似乎事情并没有这么简单。我设法让一些东西跑起来,但是损失到处乱窜,没有任何学习发生。
我是图形网络的新手,但一般来说不是深度学习。我想做的事是合理的吗?我是否遗漏了一些对我理解它是如何工作的至关重要的东西?我一直找不到任何易于理解的图网络示例,其中边缘本身就是学习目标,所以我现在有点糊涂。我感谢任何人可以提供的任何帮助!
octave - 八度音阶的 lsode 函数
我写了下面的代码,它工作了几个星期没有任何问题。突然它停止工作并出现以下错误:
代码是:
有没有人看到错误或我可以改变的东西?
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”的模块
这里有什么问题?有没有人有修复此错误的经验?谢谢。
machine-learning - 在节点特征的某些子集上构建 KNN 图
我有一个点云,我想在上面使用图形神经网络。点云中的每个点都以其位置坐标和颜色为特征。所以单个节点是(X, Y, Z, C)
.
现在我想对此应用边缘卷积(如DGL Edge-Conv 示例中(X, Y, Z)
所述,为此我应该在(而不是 C )上构建最近邻图,然后使用所有 4 个属性作为我的特征神经网络。
什么是一种干净有效的方法来做到这一点?(我有很多数据,所以我想很好地批处理和整理)
python-3.x - 使用特征和邻接矩阵的 numpy 表示构建 networkx/dgl 图
描述
从邻接矩阵生成图形对象(DGL 或 NetworkX)并允许建立节点特征。
结果
我在下面生成我的解决方案。但是,鼓励其他答案。
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' 路径文件兼容的训练代码吗?
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 可以自由地以它认为合适的任何方式完成所有预定的任务(包括运行如果可以的话,同时执行多个任务)。
谢谢。
graph - 0.5版本下如何安装dgl
我是这个领域的新手,想寻求帮助。
我想运行下面的代码:
然后出现错误并告诉我要使用 copy_from_parent() 和 copy_to_parent() 我应该使用 dgl 的版本低于 0.5。
但是,我使用了不同的方法,但仍然无法安装版本低于 0.5 的 dgl。谁能给我一些提示?
最好的问候和 THX 很多!</p>
python - 在没有深拷贝的情况下构建 dgl 图
我有一个非常大的 numpy ndarry relations
。该结构通常用于知识图(头部、关系、尾部)。现在我想从数组中构建一个 dgl-graph。使用框架的功能。我尝试通过执行以下操作来构建图表:
1.
G = dgl.DGLGraph((relations[:,0], relations[:,2]))
这两种尝试都会导致信息的深层复制。因此,使用的 RAM 本身翻了一番。有没有办法通过引用数组而不是复制信息来构建该图?