开源
Graph_nets:在 Tensorflow 和 Sonnet 中构建图形网络
来源:元经纪     阅读:475
网站管理员
发布于 2023-01-29 06:13
查看主页

概述

Graph Nets是 DeepMind 的库,用于在 Tensorflow 和 Sonnet 中构建图形网络。

什么是图网络?

图网络将图作为输入并返回图作为输出。输入图具有边 ( E )、节点 ( V ) 和全局级 ( u ) 属性。输出图具有相同的结构,但更新了属性。图网络是更广泛的“图神经网络”家族的一部分(Scarselli 等人,2009 年)。

要了解有关图网络的更多信息,请参阅我们的 arXiv 论文:Relational inductive biases, deep learning, and graph networks

安装

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

可以从 pip 安装 Graph Nets 库。

此安装与 Linux/Mac OS X 以及 Python 2.7 和 3.4+ 兼容。

该库将与 TensorFlow 的 CPU 和 GPU 版本一起使用,但考虑到这一点,它没有将 Tensorflow 列为要求,因此如果您还没有安装 Tensorflow,则需要单独安装。

要安装 Graph Nets 库并将其与 TensorFlow 1 和 Sonnet 1 一起使用,请运行:

(中央处理器)

$ pip install graph_nets "tensorflow>=1.15,<2" "dm-sonnet<2" "tensorflow_probability<0.9"

(显卡)

$ pip install graph_nets "tensorflow_gpu>=1.15,<2" "dm-sonnet<2" "tensorflow_probability<0.9"

要安装 Graph Nets 库并将其与 TensorFlow 2 和 Sonnet 2 一起使用,请运行:

(中央处理器)

$ pip install graph_nets "tensorflow>=2.1.0-rc1" "dm-sonnet>=2.0.0b0" tensorflow_probability

(显卡)

$ pip install graph_nets "tensorflow_gpu>=2.1.0-rc1" "dm-sonnet>=2.0.0b0" tensorflow_probability

最新版本的库需要 TensorFlow >=1.15。为了与早期版本的 TensorFlow 兼容,请安装 Graph Nets 库 v1.0.4。

使用示例

以下代码构建了一个简单的图形网络模块并将其连接到数据。

import graph_nets as gn
import sonnet as snt

# Provide your own functions to generate graph-structured data.
input_graphs = get_graphs()

# Create the graph network.
graph_net_module = gn.modules.GraphNetwork(
    edge_model_fn=lambda: snt.nets.MLP([32, 32]),
    node_model_fn=lambda: snt.nets.MLP([32, 32]),
    global_model_fn=lambda: snt.nets.MLP([32, 32]))

# Pass the input graphs to the graph network, and return the output graphs.
output_graphs = graph_net_module(input_graphs)

演示Jupyter notebooks

该库包含演示如何创建、操作和训练图网络以推理图结构数据、最短路径查找任务、排序任务和物理预测任务。每个演示都使用相同的图形网络架构,突出了方法的灵活性。

在Colaboratory的浏览器中试用演示

要在不在本地安装任何东西的情况下试用演示,您可以通过云 Colaboratory 后端在浏览器中(甚至在手机上)运行演示。单击下面的演示链接,然后按照笔记本中的说明进行操作。


在浏览器中运行“最短路径演示”

“最短路径演示”创建随机图,并训练图网络标记任意两个节点之间最短路径上的节点和边。通过一系列消息传递步骤(如每个步骤的图所示),模型改进了对最短路径的预测。


在浏览器中运行“排序演示” (运行 TF2 版本)

“排序演示”创建随机数列表,并训练图形网络对列表进行排序。在一系列消息传递步骤之后,模型可以准确预测哪些元素(图中的列)紧接着彼此(行)。


在浏览器中运行“物理演示”

“物理演示”创建随机质量弹簧物理系统,并训练图形网络以预测下一个时间步的系统状态。该模型的下一步预测可以作为输入反馈,以创建未来轨迹的推出。下面的每个子图显示了超过 50 个步骤的真实和预测的质量弹簧系统状态。这类似于 Battaglia 等人的模型和实验。(2016) 的“交互网络”。


在浏览器中运行“graph nets basics demo” (运行 TF2 版本)

“图形网络基础知识演示”是一个教程,包含有关如何创建和操作图形、如何将图形输入图形网络以及如何构建自定义图形网络模块的分步示例。


在本地机器上运行演示

要安装必要的依赖项,请运行:

$ pip install jupyter matplotlib scipy

要尝试演示,请运行:

$ cd <path-to-graph-nets-library>/demos
$ jupyter notebook

然后通过Jupyter notebook界面打开一个demo。

其他图神经网络库

查看这些用于图形神经网络的高质量开源库:

[/hidecontent]

 
[/rihide]
免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
不用纠结油车电车了!吉利新车型可醇、可电、可油,零下40℃低温冷启动无压力
苹果重发iOS 17.6.1正式版升级:重要错误修复!
地铁9号线首列增购电客车亮相 扫码阅读手机版
本报今起推出《科创前沿》版
AliceVision:提供 3D 重建和相机跟踪算法的框架

首页

分类

定制方案

消息

我的