用PaddlePaddle飞桨框架构建图神经网络

现在很多对人工智能领域有关注的朋友都会对图神经网络感兴趣,但我一直没有找到合适的机会对这块儿的内容进行相对系统的学习。近一周完成了百度飞桨开设的课程《图神经网络7日打卡营》,对学习内容稍作回顾,复习整理自己学到的内容。

一、图与图学习

深度学习发展得如火如荼的今天,你是否默认了它永远是一个难睹真容的“黑盒”呢?前沿的研究者早就不满足于此,除了尝试探索各种神经网络模型的中间层的含义,也有学者从学习内容的表示上入手。

“人的本质是社会关系的总和。”

每个对象都不是独立存在的,我们往往很难从对象本身获取它的全面信息,但用【图】的表示,能在一定程度上解决这个问题。

比如我们互联网上的每个id都是一个图的节点,我们的关注、共同参与的话题等会是图的边;同一个人在不同平台的账号也可以构成一张图……此所谓【万物皆可图】也。

二、利用飞桨框架快速构建图表示

想要利用图的特性来进行机器学习还是有一定门槛的,尤其是每个人都要从底层逻辑开始写的话,会增加很多难度且劝退好多人。建立起高效、可复用的公开框架,有利于领域的发展;而百度飞桨的PaddlePaddle框架能够帮助我们快速建立起一张图的表示,并且能够提供比较全面的基础操作。

和tensorflow、pytorch等框架一样,你可以通过python的包管理快速地获取使用PaddlePaddle的能力。安装好之后,首先了解Paddle的基本操作:

import paddle.fluid as fluid

# 定义两个张量
x1 = fluid.layers.fill_constant(shape=[2, 2], value=1, dtype='int64')
x2 = fluid.layers.fill_constant(shape=[2, 2], value=1, dtype='int64')

# 将两个张量求和
y1 = fluid.layers.sum(x=[x1, x2])

# 创建一个使用CPU的解释器
place = fluid.CPUPlace()
exe = fluid.executor.Executor(place)
# 进行参数初始化
exe.run(fluid.default_startup_program())

# 进行运算,并把y的结果输出
result = exe.run(program=fluid.default_main_program(),
                 fetch_list=[y1])
print(result)

至于更多关于利用Paddle搭建模型demo的演示,可以到官网教程进行学习,就先不做搬运工了。

三、算法实践初探

在课程老师的细致讲解之后,可以对经典的图算法进行实践:
用PaddlePaddle飞桨框架构建图神经网络_第1张图片

截图是课程老师提供的“脚手架”代码,形式和Stanford的CS课程一样,对理解和实践算法很有帮助。

此外,可以参考Stanford的课程进行学习:cs224w

暂时写这么多,留坑回头在补~

你可能感兴趣的:(机器学习,图神经网络)