一、 本阶段学习任务时间:3天
二、 本阶段学习内容:图论与程序中图的操作
- 我们将首先学习简单图论知识、了解常规的图预测任务;
- 然后学习基于PyG包的图数据的表示与使用;
三、学习总结
本阶段主要内容是需要熟悉图神经网络的基础知识,这些知识基本上在大学计算机专业课程离散数学中有过接触,本人前期也学习过一些图的基本知识,因此这部分内容相对容易。 - 主要图的基础知识包括:图的定义、邻接矩阵、节点的度、邻接节点、路径、连通分量、子图、最短路径、拉普拉斯矩阵
- 图的种类:
同质图:只有一种类型的节点和一种类型的边的图
异质图:存在多种类型的节点和多种类型的边的图。
二部图:节点分为两类,只有不同类的节点之间存在边。 - 图结构数据上的机器学习 :节点预测、边预测、图的预测、节点聚类。。。。。。
不熟悉的可以参照网站:
https://github.com/datawhalechina/team-learning-nlp/blob/master/GNN/Markdown%E7%89%88%E6%9C%AC/2-%E7%AE%80%E5%8D%95%E5%9B%BE%E8%AE%BA.md - 系统配置的安装
这是本次学习任务的重点,环境配置成功与否和下一步学习是否能够顺利进行息息相关。
本人电脑GPU配置成功完成,参照的教程如下网站:
https://aistudio.baidu.com/aistudio/projectdetail/696822
配置成功后,命令行下输入:
nvidia-smi
根据电脑GPU的配置,在anaconda环境中创建虚拟环境,然后
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch命令按照pytorch。
然后安装PyG
pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.8.0+cu101.html
pip install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.8.0+cu101.html
pip install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.8.0+cu101.html
pip install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.8.0+cu101.html
pip install torch-geometric
至此为止,系统配置完成。ok! - Data类和Dataset类的学习。
主要学习内容参见网站:
https://github.com/datawhalechina/team-learning-nlp/blob/master/GNN/Markdown%E7%89%88%E6%9C%AC/3-%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%E4%B8%8EPyG%E5%BA%93.md
6.作业
请通过继承Data类实现一个类,专门用于表示“机构-作者-论文”的网络。该网络包含“机构“、”作者“和”论文”三类节点,以及“作者-机构“和“作者-论文“两类边。对要实现的类的要求:1)用不同的属性存储不同节点的属性;2)用不同的属性存储不同的边(边没有属性);3)逐一实现获取不同节点数量的方法。
实现方法:通过继承torch_geometric.data的Data类实现,定义自身的属性和方法。
from torch_geometric.data import Data
class Mydata(Data):
def init(self,organization, author, paper, ao_edge_index, ao_edge_attr, ap_edge_index, ap_edge_attr,y, **kwargs):
super().init(**kwargs)
self.organization=organization
self.author=author
self.paper=paper
self.ao_edge_index=ao_edge_index
self.ap_edge_index=ap_edge_index
self.y=y
@property
def num_organization_nodes(self):
return self.organization.shape[0]
版权声明:本文为shiwy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。