问题标签 [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.
pytorch - Google Colab 上的 PyTorch Geometric CUDA 安装问题
我正在使用 Google Colab 进行 CUDA 支持的 PyTorch Geometric 项目。由于默认情况下它的库不存在,因此我运行:
最近在导入torch_geometric时,由于版本升级,出现了 CUDA 版本不匹配的情况:
RuntimeError: 检测到 PyTorch 和 torch_sparse 是用不同的 CUDA 版本编译的。PyTorch 的 CUDA 版本为 10.1,torch_sparse 的 CUDA 版本为 10.0。请重新安装与您的 PyTorch 安装相匹配的 torch_sparse。
为了解决这个问题,我尝试将 conda 用于特定的 CUDA 版本:
!conda install pytorch==1.4.0 cudatoolkit=10.0 -c pytorch
然而,在运行print(torch.version.cuda)
时,我得到10.1作为输出,而不是我想要的 10.0。
这是一个最近的错误,因为它在过去一周没有抛出这个问题。解决此问题的任何最佳实践?
graph - Pytorch 几何数据对象 edge_attr 用于无向图
如何为 pytorch 几何数据对象中的无向图构建一个edge_attr 列表。假设我们有一个像这样的无向图。pytorch几何对象所需的图COO矩阵为:
[['a', 'b', 'a', 'c', 'b', 'c']
['b', 'a', 'c', 'a', 'c', 'b']]
那么如何构造 edge_attr 列表(这是一个用于每个边缘特征的 one-hot 编码向量数组)。由于该图是无向的,因此是否可以一次简单地附加两个相同的 one-hot 编码特征向量。例如,假设这些是边缘特征:
(a, b) = [0,0,0,1]
(a, c) = [1,0,0,0]
(b, c) = [0,1,0,0]
edge_attr 列表看起来像:
[[0,0,0,1], [0,0,0,1], [1,0,0,0], [1,0,0,0], [0,1,0,0], [0,1,0,0]
注意每个 one-hot 编码的特征向量是如何重复两次的,edge_attr 中的特征向量索引对应于图 COO 矩阵中的相应边。因为图是无向的,所以我们只使用相同的特征矩阵。是正确的方法,还是有其他方法?
python - 将属性添加到数据集的对象
我对 pytorch 和 pytorch-geometric 非常陌生。我需要加载一个数据集,然后将一个属性映射到集合中稍后将在脚本中使用的每个对象。但是我不知道该怎么做。
我开始加载
然后我添加属性。我试过(值 3 仅作为示例,它将是一个 db 查询)
或者
或者
或者
但该属性始终为空。我什至尝试为 Data 类编写一个装饰器类
但是如果我尝试替换 Data 对象,它会引发错误,或者如果我使用这个解决方案TypeError: 'TUDataset' object does not support item assignment
它什么也不做。
任何建议都非常感谢。谢谢你。
pytorch - PyTorch Geometric 中的时间序列数据
我有时间序列图数据。我尝试预测下一个时间段的图形表示。是否有任何图形卷积来处理时间序列数据,或者我应该使用 PyTorch Geometric Temporal 代替吗?
python-3.x - 如何将networkx数据转换为pytorch-geometric数据?
如何使用 torch_geometric.utils.convert.from_networkx() 将 networkx 图表列表加载到 pytorch-geometric Data 中?只有图形级别的标签可用。
python - 如何将稀疏邻接矩阵转换为密集邻接矩阵?
我正在尝试将仅包含非零元素([[rows],[columns]])的索引的稀疏邻接矩阵/列表转换为在索引处包含 1 的密集矩阵,否则为 0。我找到了使用来自Pytorch几何(文档)的 to_dense_adj 的解决方案。但这并不完全符合我的要求,因为密集矩阵的形状并不像预期的那样。这是一个例子:
因此密集矩阵的大小应为 5x3(第二个数组“存储”列;在 (0,0)、(1,1)、(2,2)、(1,3) 和 ( 0,4)) 因为第一个数组中的元素小于或等于 2。
然而,
输出一个密集矩阵,但形状为 (5,5)。是否可以定义输出形状或者是否有不同的解决方案来获得我想要的?
编辑:我有一个解决方案现在可以将其转换回稀疏表示
或者有没有更好的替代方法?
python - 如何以批处理格式重新格式化pytorch几何DataLoader节点功能输出?
如何将 pytorch 几何 torch_geometric.data.DataLoader batch_data 的节点特征重新格式化为 (batch_size, num_nodes_per_graph, feature_dim) 形状?
torch_geometric.data.DataLoader 生成具有 (total_num_nodes, feature_dim) 形状的 batch_data.x(节点特征)的每个批次。但我想在 model.forward() 函数中以(batch_size,num_nodes_per_each_sample_graph,feature_dim)的形式重新格式化它。有没有办法做到这一点?
例如,重新格式化
[1605, 512] --> [64, 40, 512]
这里的节点总数是 1605。但是每个样本并不完全有 40 个节点,所以我们必须用零填充它们。但是每个节点特征都有 512 维。
neural-network - 如何在pytorch几何中定义类的数量
我是图形神经网络的新手,我正在尝试使用 pytorch-geometric 来读取 sdf 文件以进行预测,
我有以下数据集作为我的输入
我希望我的目标预测看起来像
如您所见,目标小于或等于输入 x 中的节点数,其中 x = [num_nodes, num_node_features]。
我想知道如何为这样的数据集构建图神经网络?
我应该调整输入 x 的大小还是其他?
谢谢!