当前位置:首页 > Centos > 正文

图神经网络入门实战(在 CentOS 系统上搭建与运行)

图神经网络(Graph Neural Networks, GNN)是近年来人工智能领域的重要突破,特别适用于处理社交网络、分子结构、推荐系统等具有图结构的数据。本教程将手把手教你如何在 CentOS 操作系统上搭建环境并运行一个简单的图神经网络模型。即使你是编程或深度学习的初学者(小白),也能轻松跟上!

一、准备工作:安装 CentOS 与基础依赖

首先,请确保你有一台安装了 CentOS 7 或 CentOS 8 的服务器或虚拟机。如果你使用的是云服务器(如阿里云、腾讯云),通常可以选择 CentOS 镜像。

接下来,更新系统并安装 Python 3 和 pip:

sudo yum update -ysudo yum install -y python3 python3-pip git gcc-c++

二、安装 PyTorch 与 PyG(PyTorch Geometric)

PyTorch 是目前最流行的深度学习框架之一,而 PyTorch Geometric(简称 PyG)是专为图神经网络设计的扩展库。我们将使用它来构建 GNN 模型。

首先安装 PyTorch(以 CPU 版本为例,若你有 GPU 可参考官网安装 CUDA 版本):

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu

接着安装 PyG 所需的依赖和主库:

pip3 install torch-scatter torch-sparse torch-cluster torch-spline-conv -f https://data.pyg.org/whl/torch-2.1.0+cpu.htmlpip3 install torch-geometric

提示:请根据你安装的 PyTorch 版本调整上述链接中的版本号(如 torch-2.1.0)。可使用 python3 -c "import torch; print(torch.__version__)" 查看版本。

三、编写你的第一个图神经网络

我们使用经典的 Cora 引文网络数据集来演示。该数据集包含论文及其引用关系,任务是预测每篇论文的类别。

图神经网络入门实战(在 CentOS 系统上搭建与运行) 图神经网络 深度学习 PyTorch 第1张

创建一个 Python 文件 gnn_cora.py,输入以下代码:

import torchimport torch.nn.functional as Ffrom torch_geometric.datasets import Planetoidfrom torch_geometric.nn import GCNConvdataset = Planetoid(root='/tmp/Cora', name='Cora')data = dataset[0]class GCN(torch.nn.Module):    def __init__(self):        super().__init__()        self.conv1 = GCNConv(dataset.num_node_features, 16)        self.conv2 = GCNConv(16, dataset.num_classes)    def forward(self, data):        x, edge_index = data.x, data.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)model = GCN()optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4)model.train()for epoch in range(200):    optimizer.zero_grad()    out = model(data)    loss = F.nll_loss(out[data.train_mask], data.y[data.train_mask])    loss.backward()    optimizer.step()model.eval()_, pred = model(data).max(dim=1)correct = float(pred[data.test_mask].eq(data.y[data.test_mask]).sum().item())test_acc = correct / data.test_mask.sum().item()print(f'测试准确率: {test_acc:.4f}')

运行该脚本:

python3 gnn_cora.py

正常情况下,你会看到类似 测试准确率: 0.8100 的输出,表示模型在测试集上达到了约 81% 的准确率。

四、常见问题与优化建议

  • 依赖安装失败? 请确保网络畅通,并尝试使用国内镜像源(如清华源)加速 pip 安装。
  • 内存不足? Cora 数据集很小,一般不会有问题。但处理大型图时,可考虑使用 mini-batch 训练。
  • 想用 GPU? 在 CentOS 上安装 NVIDIA 驱动和 CUDA 后,安装对应的 PyTorch GPU 版本即可。

五、总结

通过本教程,你已经成功在 CentOS 系统上搭建了图神经网络开发环境,并运行了一个基于 PyTorchPyG 的简单 GNN 模型。图神经网络作为 深度学习 的重要分支,在社交分析、药物发现等领域展现出巨大潜力。希望你能以此为起点,深入探索 GNN 的更多应用场景!

关键词回顾:CentOS、图神经网络、深度学习、PyTorch