GraphGym使用碎碎念

GraphGym是一个非常适合初学者到高阶学者研究GNN的开源组件,在这里对写出GrapyGym并开源的尤佳轩大佬表达感谢和敬佩~太强了

1.简介

本节内容主要来源于snap官网和GraphGym的论文。

GraphGym主要在探讨并解决三个问题,一是GNN怎么设计;二是探讨这些用GNN的不同的task之间是否具有一定的相似程度,进而高效的进行方法移植;三是如何评估一个GNN模型。

1.1 GNN design space

设计GNN主要有三个角度需要考虑:一是层内的GNN设计,二是层与层之间的GNN如何连接,三是GNN的训练参数如何设置。

层内设计:正则化、dropout、激活函数与聚合函数。

层间设计:层间连接是否需要skip、预处理层、信息传递层、后处理层

训练参数:batchsize、学习率、优化器选择、epochs

整个设计见下图所示。

1.2 GNN task space

task这里主要基于一个前提:不同类型的task和数据集在不同的gnn的效果表现不一样,因此比较不同类task,评估task的相似程度,进而给出可能的相似task的最佳gnn模型。

方法:给若干个模型的ancor,评估这些模型的distance。

1.3 Design space evaluation

感觉这里像是在像超参数一样,对不同的gnn组件设计及该项对结果的影响。例如:是否有BatchNorm对结果的影响、不同激活函数对node、graph level的影响等。

2 代码详解

主目录下的analysis提供类似1.3的解释,run目录下直接运行的脚本文件,graphgym目录下是论文里各个组件的详情。2的内容主要说graphgym目录下的代码详情。

移动到 graphgym目录下,代码分布见下图。下文看代码的逻辑是先看train文件,再看其他的细节文件。

2.1 train.py文件

先看最重要的train函数。可以看出这里最重要的调用就是train_epoch函数,次之是eval_epoch函数。

train_epoch 函数里涉及很多调用,这些调用都在上面图中的文件里。

 

2.2  model

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值