GCN_安装torch-geometric库

本文记录了作者在安装GCN相关包时遇到的问题,包括torch_geometric版本过高导致的AttributeError,以及解决方法——降低torch_geometric到2.1.0。还列出了主要使用的Python包及其版本。
摘要由CSDN通过智能技术生成

Motivation

由于本人在安装GCN相关包的过程中,遇到了很多坑,特此记录如下。在装GCN相关包之前,最好新建一个conda环境。

1. 安装全过程 (Linux)

参考链接:简单粗暴2-安装torch_geometric库-Linux-全过程-2021.11.26最新2.0.2版本 - 知乎

2. AttributeError: module 'torch' has no attribute "'sparse_csr'"

原因是torchgeometric的版本过高(2.3.1),解决方案为降低torchgeometric版本。

pip install torch-geometric==2.1.0

3. 主要的package及对应版本

python                        3.8.13
torch                          1.8.0+cu101
torch-cluster              1.5.9
torch-geometric         2.1.0
torch-scatter              2.0.8
torch-sparse              0.6.12
torch-spline-conv      1.2.1

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GCN (Graph Convolutional Networks) 是一种用于图数据的深度学习模型,而 torch_geometric 是一个基于 PyTorch 的图神经网络,提供了实现 GCN 的工具和函数。 要使用 torch_geometric 实现 GCN,首先需要安装 torch_geometric 。可以通过以下命令使用 pip 进行安装: ``` pip install torch_geometric ``` 安装完成后,可以按照以下步骤实现 GCN: 1. 导入所需的和模块: ```python import torch import torch.nn.functional as F from torch_geometric.nn import GCNConv ``` 2. 创建 GCN 模型类: ```python class GCN(torch.nn.Module): def __init__(self, num_features, num_classes): super(GCN, self).__init__() self.conv1 = GCNConv(num_features, 16) # 输入特征数为 num_features,输出特征数为 16 self.conv2 = GCNConv(16, num_classes) # 输入特征数为 16,输出特征数为 num_classes def forward(self, x, edge_index): x = self.conv1(x, edge_index) x = F.relu(x) x = F.dropout(x, training=self.training) x = self.conv2(x, edge_index) return F.log_softmax(x, dim=1) ``` 3. 创建数据集和加载数据: ```python from torch_geometric.datasets import Planetoid dataset = Planetoid(root='/tmp/Cora', name='Cora') data = dataset[0] ``` 4. 创建模型实例和优化器: ```python model = GCN(dataset.num_features, dataset.num_classes) optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4) ``` 5. 训练模型: ```python def train(): model.train() optimizer.zero_grad() output = model(data.x, data.edge_index) loss = F.nll_loss(output[data.train_mask], data.y[data.train_mask]) loss.backward() optimizer.step() for epoch in range(200): train() ``` 这是一个简单的 GCN 实现示例,可以根据具体需求进行修改和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值