问题标签 [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 - pip install -c dglteam dgl 失败
我从另一个线程中看到当前频道可能会影响它。我想安装 dgl 0.4.3。和 pip 命令或从环境文件安装失败。我怎样才能安装它?下面是错误日志。非常感谢。
收集包元数据(current_repodata.json):完成求解环境:初始冻结求解失败。使用灵活的求解重试。收集包元数据(repodata.json):完成求解环境:初始冻结求解失败。使用灵活的求解重试。
PackagesNotFoundError:当前频道不提供以下软件包:
- dgl
当前频道:
- https://conda.anaconda.org/dglteam/osx-arm64
- https://conda.anaconda.org/dglteam/noarch
- https://conda.anaconda.org/conda-forge/osx-arm64
- https://conda.anaconda.org/conda-forge/noarch
要搜索可能提供您正在寻找的 conda 包的替代频道,请导航至
并使用页面顶部的搜索栏。
python - 在 Windows 上使用 DGL 自定义 Neighborhood Sampler 时 DataLoader Worker 意外退出
我正在使用 DGL 库自定义邻域采样器。但是,当我在初始化 NodeDataLoader 时将参数“num_workers”设置为非零数字时,采样器无法工作。例如:
上面的代码运行良好,我在“dgl.dataloading”中使用了 MultiLayerFullNeighborSampler。请注意,无论参数“num_workers”是否设置为非零,它都有效。
上面的代码也运行良好。TestSampler 类的实现完全复制自 MultiLayerFullNeighborSampler 的实现。但是,当我将参数“num_workers”设置为非零时:
上面的代码在枚举时失败。错误消息是关于多处理的:
查了一下资料,觉得可能和windows系统的multiprocessing有关。但是,它不能解释为什么 MultiLayerFullNeighborSampler 类可以运行良好。我想知道如何正确修复它。
软件版本:
Python:Python 3.8.8(默认,2021 年 4 月 13 日,15:08:03)[MSC v.1916 64 位(AMD64)] :: Ana conda, Inc. on win32
Pytorch:1.9.1 py3.8_cuda10.2_cudnn7_0
dgl-cuda10.2:0.7.1
python - Pytorch-DGL-LightGCN-RuntimeError:尝试第二次向后遍历图形
我正在使用 DGL 构建 LightGCN 模型。我看过其他类似的问题,但仍然找不到我的问题的解决方案。我没有在这个模型中保存或使用隐藏状态或其他中间值。
这是我定义的损失函数:
下面是训练代码:
这是模型代码:
这是错误消息:
graph - 保存图形以供 dgl 使用
我在尝试存储图形并加载它们以供以后在 dgl 期间使用时遇到问题。我正在使用 networkx 创建图,然后将它们转换为 dgl 图,然后使用 .bin 将它们存储在 .bin 文件中 dgl.save_graphs("./data.bin)
。
在稍后加载它们时,dgl.load_graphs("/data.bin")
我正在尝试使用数据来创建 dgl.data.gindt.GINDataset
对象,因此文件的格式不适用于数据集对象。
关于与 dgl GINDataset 兼容的其他图形存储方法的任何想法?抱歉,如果问题没有很好地表述,谢谢。
python - 如何使用 stable-baselines3 做 RL+图神经网络
我是 stable-baselines3 的新手,正在尝试解决一个玩具图神经网络问题。我之前有一个使用数组的翻转示例。问题是这样的:给定一个包含 10 个随机位的列表和一个翻转位的操作,找到一种翻转位以将它们全部设置为 1 的方法。显然,您可以通过翻转当前为 0 但系统具有的位来做到这一点学习这个。
我想做同样的事情,输入是带有节点权重的简单线性图而不是数组。我不知道该怎么做。以下代码片段将制作一个有 10 个节点的线性图,将节点权重添加到每个节点并将其转换为 dgl 图
当我在位翻转示例中使用线性数组时,我的环境是这样的:
完成数组版本中代码的最后几行很简单:
我不能再
spaces
对图表使用稳定基线了,那么对于这个玩具问题,让稳定基线与我的 dgl 图表交互的正确方法是什么?
python - 在使用 dgl 实现图注意力网络时,用 min、max、sum 或 Hadamard 函数替换 concat 函数
我在 python 中使用 dgl 实现图形注意网络代码:
我想在实现的等式(2)中使用 min、max、sum 或 Hadamard 函数而不是串联函数。我怎样才能做到这一点?
等式(2)的代码如下:
连接函数torch.cat()
在下面的代码中:
如何更改原始实现的串联功能?
pytorch - 是否可以在 pytorch 中运行 scatter matmul?
编辑:显然 DGL 已经在研究它了:https ://github.com/dmlc/dgl/pull/3641
我有几种类型的嵌入,每一种都需要自己的线性投影。我可以用一个 for 循环来解决这个问题:
但理想情况下,我想做某种分散操作来并行运行它。就像是:
pytorch_scatter(lin_layers, embeddings, layer_map, reduce='matmul')
,其中层图告诉哪个嵌入应该通过哪个层。如果我有 2 种类型的线性层并且 batch_size = 5,那么 layer_map 将类似于 [1,0,1,1,0]。
是否可以像在pytorch_scatter中那样以有效的方式对 for 循环进行矢量化?请检查以下最小示例。
相关stackoverflow问题:如何向量化scatter-matmul操作
pytorch 中的相关问题:https ://github.com/pytorch/pytorch/issues/31942
python - 使用没有节点属性的 DGL GNN 对图进行分类
我正在按照本指南从我自己的数据中创建用于图形分类的数据集:https ://docs.dgl.ai/en/0.6.x/new-tutorial/6_load_data.html
在那里,它们不会创建任何节点的特征,因为如果您要预测图形类,则没有必要。就我而言,它是相同的,我不想使用任何节点功能(还)进行分类。
为了训练 GNN,我正在学习本教程:https ://docs.dgl.ai/tutorials/blitz/5_graph_classification.html#sphx-glr-tutorials-blitz-5-graph-classification-py
两者都来自官方文档,但它们似乎不兼容,因为当我尝试将它们一起使用时,我收到了这个错误:
而且我没有找到另一个不使用节点功能的情况下使用 DGl 训练 GNN 的示例。可能吗?我必须创建虚假属性吗?
谢谢!