前言

大家好,我是阿光。

本专栏整理了《图神经网络代码实战》,内包含了不同图神经网络的相关代码实现(PyG以及自实现),理论与实践相结合,如GCN、GAT、GraphSAGE等经典图网络,每一个代码实例都附带有完整的代码。

正在更新中~ ✨

我的项目环境:

  • 平台:Windows10
  • 语言环境:python3.7
  • 编译器:PyCharm
  • PyTorch版本:1.11.0
  • PyG版本:2.1.0

『精品学习专栏导航帖』

  • 【Matplotlib绘制图像目录】Python数据可视化之美

  • 【Pandas数据处理100例目录】Python数据分析玩转Excel表格数据

  • 最适合入门的100个深度学习实战项目

  • 【PyTorch深度学习项目实战100例目录】项目详解 + 数据集 + 完整源码

  • 【机器学习入门项目10例目录】项目详解 + 数据集 + 完整源码

  • 【机器学习项目实战10例目录】项目详解 + 数据集 + 完整源码

  • Java经典编程100例

  • Python经典编程100例

  • 蓝桥杯历届真题题目+解析+代码+答案

  • 【2023王道数据结构目录】课后算法设计题C、C++代码实现完整版大全


对于本专栏的网络模型,分别使用了三种实现方式 PyG框架实现PyTorch实现Message Passing消息传递机制实现,小伙伴可以按照自己的能力以及需求学习不同的实现方式。

注意 :本目录中已存在的链接博文已全部写好,例如 + (一):节点分类 这类带有删除线的文章表示正在更新中,如果写完会去掉删除线,点击出现404表示文章还没有发布,后续根据情况陆续发布。

『目录』


PyG算子、数据集介绍

  • (一):PyG内置常见图数据集一览表
  • (二):PyG图神经网络算子一览表

图神经网络常见任务与应用场景

  • (一):节点分类(PyG基于GCN实现Cora节点分类任务)
  • (二):图分类(PyG基于GCN实现MUTAG图分类任务)
    + (三):链路预测
    + (四):异常检测
    + (五):社区检测

图嵌入学习(Graph Embedding)

  • (一):DeepWalk(PyG基于DeepWalk实现节点分类及其可视化)
  • (二):Node2Vec(PyG基于Node2Vec实现节点分类及其可视化)
  • (三):MetaPath2Vec(PyG基于MetaPath2Vec实现节点分类及其可视化)
    + (三):LINE

图池化(Graph Pooling)

  • (一):EdgePool(Pytorch+PyG实现EdgePool实现图分类)
  • (二):TopKPool(Pytorch+PyG实现TopKPool实现图分类)
  • (三):SAGPool(Pytorch+PyG实现SAGPool实现图分类)
  • (四):ASAPool(Pytorch+PyG实现ASAPool实现图分类)

MLP

  • (一):Pytorch+PyG实现MLP(基于PyG实现)
  • (二):Pytorch实现MLP(基于PyTorch实现)

GCN

  • (一):Pytorch+PyG实现GCN(基于PyG实现)
  • (二):Pytorch实现GCN(基于PyTorch实现)
  • (三):Pytorch实现GCN(基于Message Passing消息传递机制实现)

GAT

  • (一):Pytorch+PyG实现GAT(基于PyG实现)
  • (二):Pytorch实现GAT(基于PyTorch实现)
  • (三):Pytorch实现GAT(基于Message Passing消息传递机制实现)

GIN

  • (一):Pytorch+PyG实现GIN(基于PyG实现)
  • (二):Pytorch实现GIN(基于PyTorch实现)
  • (三):Pytorch实现GIN(基于Message Passing消息传递机制实现)

GraphSAGE

  • (一):Pytorch+PyG实现GraphSAGE(基于PyG实现)
  • (二):Pytorch实现GraphSAGE(基于PyTorch实现)
  • (三):Pytorch实现GraphSAGE(基于Message Passing消息传递机制实现)

EdgeCNN

  • (一):Pytorch+PyG实现EdgeCNN(基于PyG实现)
  • (二):Pytorch实现EdgeCNN(基于PyTorch实现)
  • (三):Pytorch实现EdgeCNN(基于Message Passing消息传递机制实现)

GraphConv

  • (一):Pytorch+PyG实现GraphConv(基于PyG实现)
  • (二):Pytorch实现GraphConv(基于PyTorch实现)
  • (三):Pytorch实现GraphConv(基于Message Passing消息传递机制实现)

注意:所有文章使用的图数据是经典的 Cora 数据集,定义的训练轮数(200轮)以及损失函数优化器都是一致的,由于图网络很容易过拟合导致训练集的分类精度达到 99.9%,所以下表中显示的数据都是基于测试集的。

AccuracyLoss
MLP0.18001.9587
GCN0.72001.3561
GAT0.78101.0362
GIN0.76500.9645
GraphSAGE0.70601.2712
EdgeCNN0.37901.7529
GraphConv0.60301.2378