本文为图卷积网络详细介绍(一)的完整代码实现。

图卷积网络详细介绍(一)翻译自Tobias Skovgaard Jepsen写在Medium上的博客文章,该文用代码示例说明了如何通过GCN的隐藏层来传播信息,但是并没有给出完整的代码,尤其是最后的可视化部分。因此,本文给出了该文章案例对应的完整代码。

import networkx as nx
import numpy as np
import matplotlib.pyplot as plt# load karate network
zkc = nx.karate_club_graph()
order = sorted(list(zkc.nodes()))# input parameters
A = nx.to_numpy_matrix(zkc, nodelist=order)
I = np.eye(zkc.number_of_nodes())
A_hat = A + I
D_hat = np.array(np.sum(A_hat, axis=1))
D_hat = [x[0] for x in D_hat]
D_hat = np.matrix(np.diag(D_hat))# initializing weight
W_1 = np.random.normal(loc=0, scale=1, size=(zkc.number_of_nodes(), 4))  # Normal Distribution or Gaussian Distribution
W_2 = np.random.normal(loc=0, size=(W_1.shape[1], 2))
# loc is Mean (“centre”) of the distribution
# scale is Standard deviation (spread or “width”) of the distribution
# size is Output shape# GCN Model
def relu(x):return np.maximum(x, 0)def gcn_layer(A, D, X, W):return relu(D**-1*A*X*W)H_1 = gcn_layer(A_hat, D_hat, I, W_1)
H_2 = gcn_layer(A_hat, D_hat, H_1, W_2)
output = H_2# get feature representations of nodes
feature_representations = {node: np.array(output)[node] for node in zkc.nodes()}# visualizing the features
plt.figure(figsize=(7, 5), dpi=180)  # set the size of the figure
pos = feature_representations
for x in zkc.nodes():if zkc.nodes[x]['club'] == 'Mr. Hi':nx.draw_networkx_nodes(zkc, pos, [x], node_size = 200, node_color = '#1f77b4', alpha=1)else:nx.draw_networkx_nodes(zkc, pos, [x], node_size = 200, node_color = '#ff7f0e', alpha=1) labels = {}
labels[0] = r'A'
labels[33] = r'I'
nx.draw_networkx_labels(zkc, pos, labels, font_size=8)
# plt.axis('off')
plt.show()

由于该案例中没有误差反向传播过程,即没有GCN的训练步骤,而且每次隐层的权重都是随机初始化的, 所以每次运行的结果会不一样,可能会出现较好的社区划分效果,如下图

这样的

还有这样的

也有可能效果不是很好,出现这样的


这样的

甚至这样的
敬请期待后续文章

图卷积网络详细介绍(二)相关推荐

  1. 图卷积网络原理(二)【图信号与图的拉普拉斯矩阵】

    矩阵乘法的三种视角 后续图卷积网络的原理讲解主要以矩阵乘法的显示展开,这里介绍矩阵乘法的几种不同的视角,这些视角有助于我们理解图卷积网络的逻辑过程. 对于矩阵 A∈Rm×nA\in R^{m\time ...

  2. 轻量级图卷积网络LightGCN介绍和构建推荐系统示例

    来源:DeepHub IMBA 本文约4500字,建议阅读9分钟 今天介绍的这个模型被称作:Light Graph Convolution Network 或 LightGCN¹. 推荐系统是当今业界 ...

  3. 图卷积网络(Graph Convolutional Networks, GCN)详细介绍

    本文翻译自博客. 在这篇博文中会为大家详细地介绍目前使用广泛的图神经网络--图卷积网络(Graph Convolutional Networks, GCN)的相关知识.首先将带领大家直觉上感受其工作原 ...

  4. 图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导

    文章目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral domai ...

  5. 关系抽取:图卷积网络的学习(二)(附代码)

    关系抽取:图卷积网络的学习(二)(附代码) 目录 关系抽取:图卷积网络的学习(二)(附代码) 论文一:基于关系图的实体关系联合抽取 摘要 1.Introduction 2.Motivation 3.G ...

  6. Graph Convolution Network图卷积网络(二)数据加载与网络结构定义

    背景 : 弄懂Graph Convolution Network的pytorch代码如何加载数据并且如何定义网络结构的. 代码地址:https://github.com/tkipf/pygcn 论文地 ...

  7. GCN图卷积网络 | 介绍

    目录 0 前言 1 基于空间域的GCN[2] 2 基于谱域的GCN 2.1拉普拉斯矩阵 2.2为什么GCN要用拉普拉斯矩阵? 2.3 拉普拉斯矩阵的谱分解(特征分解) 2.4卷积的定义 2.5傅里叶变 ...

  8. Survey | 基于图卷积网络的药物发现方法

    本期介绍2019年6月发表在Briefings in Bioinformatics的综述,该综述由康奈尔大学等机构的研究人员撰写,系统总结了GCN及其在药物发现方面的最新进展,重点是与药物相关的应用: ...

  9. 【GCN】图卷积网络(GCN)入门详解

    机器学习算法与自然语言处理出品 @公众号原创专栏作者 Don.hub 单位 | 京东算法工程师 学校 | 帝国理工大学 图卷积网络(GCN)入门详解 什么是GCN GCN 概述 模型定义 数学推导 G ...

  10. (18) 基于时空多图卷积网络的网约车需求预测

    交通预见未来(18): 基于时空多图卷积网络的网约车需求预测 1.文章信息 <Spatiotemporal Multi-Graph Convolution Network for Ride-ha ...

最新文章

  1. python list.pop 的方法的使用
  2. CenterNet2:比强更强的二阶段网络,COCO成绩最高达到56.4mPA
  3. 在WebView中如何让JS与Java安全地互相调用
  4. electron 打包 php,electron 将现有vue项目改成支持electron桌面端应用
  5. Windows Server 2008 R2安装Zune 4.0解决方法
  6. 洛谷 P2513 [HAOI2009]逆序对数列
  7. php中字符串分割函数
  8. Fedora16 下更改多系统、多内核的默认启动项
  9. 计算机应用基础题excel,计算机应用基础专练习题excel.doc
  10. 前后端分离项目session跨域失效的解决方案
  11. Java 垃圾回收机制原理
  12. 软件测试工程师岗位职责、岗位要求
  13. bat运行Java程序
  14. 广告SDK平台中的CPA、CPS、CPM、CPT、CPC 是什么
  15. Embedded Linux S3C2440 - QEMU and Graphic
  16. 二叉树的基本运算实验报告C语言,实验三 二叉树基本操作与应用实验
  17. Cannot resolve dependency ‘snabbdom‘ or ‘snabbdom/init‘
  18. powerdesigner16.5破解补丁
  19. 超链接打不开是什么原因html,超链接打不开是什么原因
  20. java 路径(相对路径和绝对路径)问题汇总【转】

热门文章

  1. homestead修改php版本
  2. 逆天!百度AI音箱重磅升级:最大梦想实现
  3. Java--对象的克隆
  4. delphi2010:按键 控制键 组合键的判断 响应
  5. AI 时代,程序员从小白到小牛的发展攻略丨今晚直播送机械键盘!
  6. MySQL老是提示视图没有主键
  7. XenApp/XenDesktop 7.12新功能LHC解读
  8. 游戏服务器当中的唯一名设计方法
  9. 一次Mysql 死锁事故
  10. PlusWell FileMirror软件产品简介