问题标签 [pytorch-geometric]

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 投票
3 回答
1171 浏览

python - 如何创建图神经网络数据集?(pytorch 几何)

如何将我自己的数据集转换为可供 pytorch 几何图形神经网络使用?

所有教程都使用已转换为可供 pytorch 使用的现有数据集。例如,如果我有自己的点云数据集,我如何使用它来训练图神经网络的分类?我自己的用于分类的图像数据集呢?

0 投票
1 回答
385 浏览

python - Pytorch 几何包中 train_test_split_edges 中的正边和负边

我试图在图中找到负边和正边的解释,如函数 train_test_split_edges Pytorch Geometric doc的开头所述。根据文档文件,它说该函数应该将图形拆分为“正负训练/验证/测试边”。就此而言,上升沿或下降沿是什么意思。根据代码,正边“似乎”是图邻接矩阵上三角形中的边的连接,而负边是邻接矩阵下三角形中的边。因此,如果 (1,0) 被认为是正边,那么在无向图中 (0,1) 是负边。我对么?我在任何地方都找不到关于图形中正边/负边的含义。

0 投票
2 回答
423 浏览

networkx - 将 pytorch 几何数据样本转换为其对应的折线图

我正在尝试转换火炬几何数据集,以便其内容表示为原始样本的折线图。我的代码如下所示:

但是,生成的样本没有任何属性,也edge_attr没有x. 同时,标签y也消失了。有没有更好的转换方法?

0 投票
1 回答
88 浏览

pytorch - 如何处理 Pytorch Geometric 中未标记的节点?

我自己有一个数据集,数据集包含两个类,比如说 0 和 1。此外,还有很大一部分节点没有标记类。我的目标是使用 GCN 预测这些未标记的节点。但是我对如何在 Pytorch Geometric 中处理这些未标记的节点感到困惑。

据我所知,我可以将节点标记为 3 类,0、1 和未知。但是,如果我这样做,是否意味着我正在尝试将数据集分为三类?(但这不是我想要的,因为 unknown 不是一个类)。

处理这些节点的另一种方法是忽略它们,只需在标记节点上运行 PyG。但是这样一来,这些未标记的节点(带有特征)似乎在数据集中没有用?

0 投票
0 回答
21 浏览

machine-learning - 有些人如何在 Pytorch 中有效地将树神经网络转换为 Dag 神经网络,并且没有后向传递错误?

我想将我的树神经网络转换为 dag 神经网络。前向传递很简单,因为我可以通过缓存节点和张量的唯一名称来简单地检测我是否已经通过了该节点/子树。但是,在反向传递中这是一个问题,因为即使我重用这些张量,自动毕业引擎也会抱怨我已经通过这些张量进行了反向传递(并且正确地如此)。有没有办法以简单的方式修改后向传递,以便重新使用已经计算的梯度?

还是更容易放弃我的旧代码并在 Pytorch Geometric (PyG) 或使用 Deep Graph Library (dgl) 中实现这些模型?

为了完整起见,这里是错误消息:


交叉贴:

0 投票
2 回答
1275 浏览

pip - PyTorch 的几何安装问题。“火炬分散”产生退出状态为 1 的错误

如果以前使用过 PyTorch 几何,任何人都可以帮我解决这个问题。我在从 PyTorch Geometric 安装 Torch-scatter 以处理一些基于TAPAS模型的问答任务的表格数据时遇到问题。我认为源代码存在编译错误。我尝试检查其他论坛并没有找到解决方案。

产生错误的过程:

控制台输出:

我还尝试使用 python -f 标志,并特别尝试从源代码中提取:

以下是我的 PyTorch 和 CUDA 版本以及各自的导入和控制台输出:

输出:

CUDA 版本:

输出:

蟒蛇版本:

非常感谢您的时间和指导。

0 投票
0 回答
100 浏览

pytorch - PyTorch Geometric 如何输入一个样本而不是小批量?

在标准 PyTorch 文档中,它表示torch.nn将输入视为小批量。因此,对于一个样本,它建议使用input.unsqueeze(0)以添加假批次。PyTorch 几何nn模块是这种情况吗?

更具体地说,我想将具有 35 个顶点和标量边权重的全连接图提供给NNConv图层。因此,我将此图表示为Data对象,其中Data.x35x35 邻接矩阵Data.edge_index是 2 x 1225 张量,因为它是完全连接的,并且Data.edge_attr是形状 1225 x 1 的张量,因为它是完全连接的,边缘属性只是标量权重。我设计了这样一个NNConv层,我输入的不是小批量而是一个样本到网络。

在前向功能

我不明白的是我需要添加假的小批量。这是正确的还是我需要添加x.unsqueeze(0),如果是,这些Data属性中的哪一个 ( x, edge_index, edge_attr) 确实需要unsqueeze(0). 谢谢。

0 投票
0 回答
87 浏览

pytorch - PyTorch Geometric如何计算特征向量中心性?

我有 GAN 用于其中有torch_geometric.nn.NNConv层的图形预测任务。我想将真实图和预测图之间的特征向量中心性差异添加到我的损失函数中。为了计算特征向量中心性,我打算使用库中eigenvector_centrality的函数。NetworkX然而,这个函数需要输入是一个NetworkX图,它还需要将我torch.tensor从生成器网络的输出转换为numpy.array. 所以,我需要detach()梯度,这将导致 PyTorch 失去所有梯度跟踪。因此,我怎样才能正确地为我的损失函数实现特征向量中心性?谢谢。

0 投票
0 回答
161 浏览

python - 如何使用自定义图形数据创建 pytorch 几何数据集?

我是 PyTorch 几何的新手,并尝试使用SEAL_OGB来执行链接预测任务,首先我将我的图转换为 networkx 图

然后通过使用进行数据拆分

这是遇到问题的地方,对此问题进行了讨论,但找不到任何解决方案,需要任何帮助!!!

顺便说一句,我使用的是 snap 提供的亚马逊数据集,这是我的colab 代码

数据看起来像这样数据图像

0 投票
2 回答
271 浏览

python - 如何使用 Nix 让 torch-geometric 工作?

我正在尝试让 Python 包torch-geometric使用 Nix(我在 NixOS 上)工作。目前,我使用mach-nix来尝试设置 Python 环境。但是,困难在于一些依赖项应该从单独的文件服务器(不是 pypi)下载,即https://pytorch-geometric.com/whl/torch-1.8.0+cpu.html。我首先尝试设置一个包含单个torch-geometric依赖项的环境:torch-sparse

目前我有以下内容shell.nix

其中,在运行时nix-shell,失败并显示以下错误消息:

我尝试将which包添加到checkInputsand buildInputs,但这并不能解决问题。显然,我尝试直接从其 GitHub 存储库构建包,因为我不确定如何wheelmach-nix. 我对 NixOS 环境比较陌生,坦率地说,我完全迷路了。

我应该如何安装 Python 包,例如torch-sparseor torch-geometric?我什至使用正确的工具吗?