0 BackGround
GNN:图神经网络,由于传统的CNN网络无法表示顶点和边这种关系型数据,便出现了图神经网络解决这种图数据的表示问题,这属于CNN往图方向的应用扩展。
GCN:图卷积神经网络,GNN在训练过程中,有将attention引入图结构的,有将门控机制引入图结构的,还有将卷积引入图结构的,引入卷积的GNN就是GCN,通过提取空间特征来进行学习。
为什么要开图神经网络 (GNN) 的新坑? 组合优化中有一种问题叫路由问题 (routing problem), 代表是旅行商人问题 (Travelling Salesman Problem). 而这类问题, 本身的数据结构就是图 (Graph) 结构, 在构建和求解上, GNN似乎具有天然的优势. 当下GNN大火, 有两个库是最热门的: Deep Graph Library (DGL) 和 PyTorch Geometric (PyG). 这两个库都很好用, 差别也不特别大 (DGL官网是有中文教程的). 但是PyG相对来说更基础一些, 教程与支持也更多一些.
PyG全称是Pytorch Geometric,它是一个基于Pytorch构建的库,可以帮助用户快速构建和训练自己的图神经网络模型。PyG中实现了很多先进(state of the art)的GNN模块,例如GCN、GraphSage、GAT、SGC、GIN等等。此外,PyG中还包含了大量的benchmark图数据集、丰富的图数据操作方法、支持多GPU。
注:提示一下,一定要按此教程一步一步走,千万不能直接pip install,因为pytorch_geometric库有很多依赖,必须逐步安装,否则会产生各种各样的错误。
1. 进入github
https://github.com/pyg-team/pytorch_geometric
2. 找到Pip Wheels, 进入依赖安装位置
3. 找到对应的版本
大家不要盲目的和我选择一样的版本号,每个人的版本是不一样的,torch的版本可以进入虚拟环境后使用pip list来查看:
conda activate envs # envs是虚拟环境的名字
pip list
找到自己本地对应的版本后进入相应版本的依赖。
4. 依次安装依赖(一共4个)
先查看自己本地的python版本(已回会用到)(我的是3.8):
python -V 或者 输入 python --version
第一个依赖是torch_cluster,找到相应版本,cp就是python的版本(3.7~3.10),我的版本是cuda11.6,python3.8,win64,点击后自动下载,自行指定下载路径(下载到哪里都行,只要自己能找到就好)。
进入虚拟环境的终端,使用pip install + 保存的路径进行安装👇
以下三个依赖同理,有几个装几个,方法和第一个完全一样:
5. 安装torch-geometric
pip install torch-geometric
6. 验证安装是否成功
import torch-geometric
或者终端输入👇
python -c "import torch_geometric"
没有报错的话说明我们已经成功安装了pytorch_geometric库。