MindSpore实践图神经网络01开篇
图
-
图是一种结构化数据类型,由节点(nodes)和边(edges)组成,同时图本身也可以作为数据点。
-
图是一种非欧几里得数据,这也意味着它们可以存在于3D中。与图像、文本和音频等其他数据类型不同,图数据具有不规则性和高复杂的邻接关系。
CV里的图像数据(左)和GNN中图数据(右)
- 欧式空间中的卷积操作实际上是用固定大小可学习的卷积核来抽取像素的特征
- 而图上邻居结点不固定,所以传统的卷积核不能直接用于抽取图上结点的特征
图神经网络
人工神经网络(简称NN)及其扩展族,包括卷积神经网络(CNN)、递归神经网络(RNN),以及现在的图神经网络(GNN)。CNN与RNN的操作数据是规则的序列(文本)和网格(图像)数据,应用对象单一且固定。
但是,现实世界中存在许多复杂系统,这些系统常常表现为复杂网络的形式,如社交网络,交通网络,蛋白质交互网络,由于这些复杂网络的不规则性,传统的神经网络很难直接应用于图数据。而GNN的出现,使得深度学习能够更好地处理图数据。GNN可以实现节点分类,链路预测,图分类等图相关的任务。
图神经网络框架
几何深度学习揭示了如何在图形上使用深度学习。图神经网络GNN是几何深度学习的一部分,研究具有结构属性、拓扑性质的数据的学习和预测任务。图神经网络的每一个特征提取层都会对节点的特征和连接的特征进行更新,这种更新模式被叫作消息传递机制。
消息传递机制指的是要更新某一个点的特征,需要考虑周边和它相连的点的特征,这里就要用到消息函数。消息函数通常是由一个网络对节点和周边节点关系的刻画。然后用另一个网络整合周边节点信息,接着加和到这个节点本身的特征中,这两步更新模式就构成了一个基本的消息传递机制。其核心在于聚合邻居结点的信息。
消息传递机制示意图
MindSpore及环境配置(Windows11)
(1)安装Minicanda
- 安装Minicanda,创建Python环境
# 创建环境
conda create --name py39_ms18 python=3.9.0
# 输入y
# 切换到环境
conda activate py39_ms18
# 查看安装版本
python --version
# 3.9.0
# 更新环境
pip install --upgrade pip
(2)安装MindSpore
-
获取环境安装命令: https://www.mindspore.cn/install
-
Windows11+CPU+Python39+MindSpore18
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.8.0/MindSpore/cpu/x86_64/mindspore-1.8.0-cp39-cp39-win_amd64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
- Linux版本(可选): Linux+CUDA101+Python39+MindSpore18
# CUDA101
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.8.0/MindSpore/gpu/x86_64/cuda-10.1/mindspore_gpu-1.8.0-cp39-cp39-linux_x86_64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
# CPU
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.8.0/MindSpore/cpu/x86_64/mindspore-1.8.0-cp39-cp39-linux_x86_64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
(3)验证是否安装成功
python -c "import mindspore;mindspore.run_check()"
小结
- 本文主要介绍了图和图神经网络的基础概念,以及MindSpore的环境安装与配置。本系列实践内容包含MindSpore的基础使用方法和GNN的实践过程。
- 点赞
- 收藏
- 关注作者
评论(0)