美文网首页深度学习
GCN学习实例(dgl)

GCN学习实例(dgl)

作者: Howyi | 来源:发表于2020-10-20 14:25 被阅读0次

前言:

结合阿里算法工程师写的关于DGL库文章中的例子和DGL的文档,写了这篇关于DGL的笔记(代码可以跑通)。

安装图神经网络库DGL:

通过pip install dgl==0.4.1

1问题描述:

空手道俱乐部(Zachary's karate club)一共包含34个成员,成员之间有交互的关系。俱乐部后来分类成以指导员(节点0)和俱乐部主席(节点33)为首两个团队。任务是预测每个节点会加入哪一边。

空手道俱乐部网络的可视化图

2 代码实现

1构建karate_club图。

代码解释-1

注释:

对于无向图而言,需要构建一个双向图。另一种双向图的构建方法可以使用dgl.to_bidirected()。

构建图神经网络

图卷积审计网络框架

在第l层,每个节点v_{i}^{l}用一个节点向量h_i^l表示

GCN的每一层目的是聚合每一个节点v_i的邻居节点们u_i^l用来生成下一层的向量表示h_i^{l+1},然后接一个非线性的仿射变换。上面整个可以看成message-passing:每个节点会接受邻居节点表示。

代码解释-2

注释:

message function的输入是DGL中的edges,每个的edges有三个元素src(开始节点的特征),dst(终止节点的特征)和data(边的特征);reduce function的输入是nodes。点通过mailbox收集它邻居的信息并且发送给它。reduce 的基本运算包括sum,max,min等。update function的输入是nodes,这步结合从reduce function的结果,在最后一步结合了点的特征。

数据初始化:使用one-hot向量初始化节点。因为一个半监督的设定,仅有指导员(节点0)和俱乐部主席(节点33)被分为0和1.

训练:使用adam优化器,然后输入input数据,计算loss,最后反向传导

代码解释-3

展示最终结果:从训练中得到每个节点的压缩后的两维的向量,然后可视化最终结果。

代码解释-4 代码解释-5 29 轮的展示

Reference:

DGL文档:https://docs.dgl.ai/guide/graph.html

秦蓁的机器学习笔记:https://www.zhihu.com/column/c_1173319214768201728

相关文章

  • GCN学习实例(dgl)

    前言: 结合阿里算法工程师写的关于DGL库文章中的例子和DGL的文档,写了这篇关于DGL的笔记(代码可以跑通)。 ...

  • GNN学习 【01】——DGL

    学习内容:DGL - Get Started 讨论问题 1. 如何借助networkx创建dgl图?如何直接创建d...

  • DGL框架学习

    今天一天都在学习Deep Graph Library框架,这个框架相比于PyG使用起来稍微麻烦一点,不过似乎也更加...

  • GoogleColab实现HAN异构图注意力神经网络算法

    参考dgl代码: https://github.com/dmlc/dgl/tree/master/examples...

  • 李宏毅 GNN 课堂笔记

    重要的网站 https://www.dgl.ai/[https://www.dgl.ai/]https://git...

  • GCN学习小结

    传统的CNN算法是指在图片上做卷积,得到图像的特征图,进而进行后续的操作。而很多数据不像图片数据一样是一行行一列列...

  • GCN学习小结

    如果说CNN是针对图像数据那样的规则数据,有具体的应用场景,那么GCN则是其泛化可以针对所有的应用场景。 在数学上...

  • 在服务器上运行代码

    1 安装包 dgl 用于开发图神经网络打开网页https://www.dgl.ai/pages/start.htm...

  • GCN图顶点分类理解

    GCN输出的H'矩阵,最后怎么令其作节点分类。即,GCN输出H’如何让节点分类的? 以pytorch的GCN模型为...

  • Graph Convolutional Network

    This is a gentle introduction of using DGL to implement G...

网友评论

    本文标题:GCN学习实例(dgl)

    本文链接:https://www.haomeiwen.com/subject/tfllmktx.html