标签: pytorch-geometric

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

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

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

python graph-databases pytorch pytorch-geometric

11
推荐指数
1
解决办法
1万
查看次数

如何将网络中的图形加载到 PyTorch 几何图形并设置节点特征和标签?

目标:我正在尝试将网络中的图形导入 PyTorch 几何图形并设置标签和节点特征

(这是Python中的)

问题)

  1. 我该如何做到这一点[从networkx到PyTorch几何的转换]?(大概是通过使用该from_networkx功能)
  2. 如何传输节点特征和标签?(更重要的问题)

我看过一些其他/以前的帖子有这个问题,但他们没有得到回答(如果我错了,请纠正我)。

尝试:(我刚刚在下面使用了一个不切实际的例子,因为我无法在这里发布任何真实的内容)

让我们想象一下我们正在尝试在一组汽车上执行图形学习任务(例如节点分类)(正如我所说的不太现实)。也就是说,我们有一组汽车、一个邻接矩阵和一些特征(例如年底的价格)。我们想要预测节点标签(即汽车的品牌)。

我将使用以下邻接矩阵:(抱歉,不能使用乳胶来格式化它)

A = [(0, 1, 0, 1, 1), (1, 0, 1, 1, 0), (0, 1, 0, 0, 1), (1, 1, 0, 0, 0) , (1, 0, 1, 0, 0)]

这是代码(适用于 Google Colab 环境):

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import networkx as nx
from torch_geometric.utils.convert import to_networkx, from_networkx
import torch

!pip install torch-scatter torch-sparse torch-cluster …
Run Code Online (Sandbox Code Playgroud)

python networkx pytorch pytorch-geometric

11
推荐指数
1
解决办法
1万
查看次数

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

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

python classification graph pytorch pytorch-geometric

7
推荐指数
1
解决办法
1976
查看次数

如何使用任何工具可视化 HeteroData pytorch 几何图?

您好,可视化 pyg HeteroData 对象的好方法是什么?(定义类似:https://pytorch-geometric.readthedocs.io/en/latest/notes/heterogeneous.html#creating-heterogeneous-gnns

我尝试使用networkx,但我认为它仅限于同构图(可以转换它,但信息量要少得多)。

g = torch_geometric.utils.to_networkx(data.to_homogeneous(), to_undirected=False )
Run Code Online (Sandbox Code Playgroud)

有人尝试用其他 python lib (matplotlib) 或 js (sigma.js/d3.js) 来做到这一点吗?

您可以分享任何文档链接吗?

visualization networkx graph-visualization pytorch-geometric

7
推荐指数
1
解决办法
2510
查看次数

Pytorch几何中的edge_weight和edge_attr有什么区别

我想在 Pytorch Geometric 中处理加权无向图。节点特征是50维的。我发现这可以通过类x的属性来处理torch_geometric.data.data。边的权重是标量值。我们发现edge_attredge_weight是处理边缘的属性。

我想我应该使用edge_weight,这是正确的吗?

edge_attr另外,和 之间有什么区别edge_weight

我的英语不太好,所以对此我深表歉意。我希望我能得到一个好的答案。

谢谢。

graph pytorch pytorch-geometric

6
推荐指数
1
解决办法
8379
查看次数

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

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

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

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

pytorch pytorch-geometric

5
推荐指数
1
解决办法
772
查看次数

Pytorch几何稀疏邻接矩阵到边缘索引张量

我的数据对象有data.adj_t参数,给我稀疏邻接矩阵。我怎样才能从中得到edge_index尺寸张量?[2, num_edges]

python graph adjacency-matrix pytorch pytorch-geometric

5
推荐指数
1
解决办法
6890
查看次数

将图从networkx转换为pytorch几何时如何保留节点顺序?

问题:将图形从networkxpytorch 几何图形转换为图形时如何保留节点顺序/标签?

代码:(在 Google Colab 中运行)

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import networkx as nx

import torch
from torch.nn import Linear
import torch.nn.functional as F
torch.__version__

# install pytorch geometric
!pip install torch-scatter torch-sparse torch-cluster torch-spline-conv torch-geometric -f https://data.pyg.org/whl/torch-1.10.0+cpu.html

from torch_geometric.nn import GCNConv
from torch_geometric.utils.convert import to_networkx, from_networkx

# Make the networkx graph
G = nx.Graph()

# Add some cars 
G.add_nodes_from([
      ('Ford', {'y': 0, 'Name': 'Ford'}),
      ('Lexus', {'y': 1, …
Run Code Online (Sandbox Code Playgroud)

python networkx python-3.x pytorch pytorch-geometric

5
推荐指数
1
解决办法
1280
查看次数

Pytorch:运行时错误:零维张量(位置 0)无法连接

我有两个张量

# losses_q
tensor(0.0870, device='cuda:0', grad_fn=<SumBackward0>)
# this_loss_q
tensor([0.0874], device='cuda:0', grad_fn=<AddBackward0>)
Run Code Online (Sandbox Code Playgroud)

当我尝试连接它们时,pytorch 会引发错误:

losses_q = torch.cat((losses_q, this_loss_q), dim=0)

RuntimeError: zero-dimensional tensor (at position 0) cannot be concatenated
Run Code Online (Sandbox Code Playgroud)

如何解决这个错误?

python-3.x pytorch tensor pytorch-geometric

5
推荐指数
1
解决办法
6025
查看次数

torch_geometric.nn 中池化和全局池化的区别

我意识到torch_geometric 库提供了全局池化层和池化层,但我真的不明白这两个层在应用于图神经网络时有什么区别?

torch pytorch-geometric

4
推荐指数
1
解决办法
1261
查看次数

在导入 torch_geometric 抛出“std::bad_alloc”实例后终止调用

我正在用 python 编写并收到错误:

“抛出'std :: bad_alloc'实例后调用终止。what
():std :: bad_alloc。
中止(核心转储)”

经过大量的调试,我发现问题的根源是:

import torch_geometric
Run Code Online (Sandbox Code Playgroud)

我什至只用这行代码创建了一个文件,但仍然收到错误。
我正在 conda 环境(4.10.3)中运行,我确保在 conda 环境中安装了 torch_geometric。我尝试删除并重新安装,但这不起作用。
我还尝试删除并重新安装 torch/cuda。
我用谷歌搜索了这个错误,但似乎只提出了数据分配方面的问题,但我不确定这会是一个问题,因为我只是导入 torch_geometric。

有任何想法吗?

bad-alloc python-import importerror pytorch pytorch-geometric

4
推荐指数
1
解决办法
2749
查看次数