
GNN实验
文章平均质量分 79
GNN模型以及各个阶段的实验与分析
智慧的旋风
这个作者很懒,什么都没留下…
展开
-
2021-MAXP-DGL图机器学习大赛-Graph@ICT-复盘与总结【rank6】
2021-MAXP-DGL图机器学习大赛-Graph@ICT-复盘文章目录2021-MAXP-DGL图机器学习大赛-Graph@ICT-复盘写在前面初赛:超长战线前期:顺风顺水到阶段性受挫中期:柳暗花明后又遭受打击后期:人都被卷没了到又重新燃起希望复赛:决定命运的48hday1day2复赛放榜总结写在前面时间真快,遥想刚开始搞这个比赛的时候,我还是刚从字节离职。一晃几个月就过去了,我的研一上学期也接近了尾声。这个比赛奖金贼多,总奖金18w,但是根据我从小到大围棋比赛的经验来看,有奖金特别是奖金丰厚的原创 2022-01-15 16:58:05 · 2063 阅读 · 2 评论 -
【Graphormer阅读笔记、实验与刷榜】《Do Transformers Really Perform Bad for Graph Representation?》
Graphormer阅读笔记——chxpaper:https://arxiv.org/abs/2106.05234code:https://github.com/microsoft/Graphormer (main分支)Graphormer主要策略1. Transformer结构主要有Transformer layer组成,每一层包括MHA(多头自注意)和FFN(前馈)模块,并增加了LN。h′(l)=MHA(LN(h(l−1)))+h(l−1)h(l)=FFN(LN(h′(l)))+h′(原创 2021-08-09 09:05:36 · 5412 阅读 · 1 评论 -
【DGL学习5】DGL消息传递API详解
DGL消息传递API详解参考:https://docs.dgl.ai/guide_cn/message-api.htmlMPNN的实例请参考:【DGL学习2】编写自己的GNN模型(MPNN)import dglimport torchimport dgl.function as fnUsing backend: pytorchg = dgl.graph((torch.tensor([0, 0, 0, 1, 1]), torch.tensor([1, 2, 3, 2, 3])))pri原创 2021-05-28 16:05:55 · 415 阅读 · 0 评论 -
【DGL学习4】使用DGL构造异构图
使用DGL都早异构图参考:https://docs.dgl.ai/guide_cn/graph-heterogeneous.htmlimport dglimport torchUsing backend: pytorch使用DGL创建异构图下面一个异构图示例。该图具有两种类型的节点(“用户”和”游戏”)和两种类型的边(“关注”和”玩”)。我们将按照这个例子来创建一个异构图。graph_data = { ('user', 'follows', 'user') : (torch.t原创 2021-05-27 18:03:44 · 3632 阅读 · 4 评论 -
【DGL学习3】自己构造和使用简单图
使用DGL构造和使用简单图。参考:https://docs.dgl.ai/guide_cn/graph-graphs-nodes-edges.htmlimport dglimport torchimport numpy as npUsing backend: pytorch使用DGL建简单图创建一个 DGLGraph 对象的一种方法是使用 dgl.graph() 函数。它接受一个边的集合作为输入。DGL推荐使用Tensor作为DGL API的输入。不过大部分的DGL API也支持Pyth原创 2021-05-27 15:16:53 · 2244 阅读 · 0 评论 -
【DGL学习2】编写自己的GNN模型(MPNN)
使用DGL的消息传递API编写自己的GNN模型。参考:https://docs.dgl.ai/tutorials/blitz/3_message_passing.htmlhttps://docs.dgl.ai/api/python/udf.html#apiudfhttps://docs.dgl.ai/generated/dgl.function.copy_u.htmlimport dglimport torchimport torch.nn as nnimport torch.nn.fu原创 2021-05-27 10:01:44 · 1963 阅读 · 0 评论 -
【DGL学习1】GCN example
DGL学习用DGL实现一个简单的GCN-cora的例子。参考:https://docs.dgl.ai/tutorials/blitz/1_introduction.html#sphx-glr-tutorials-blitz-1-introduction-pyimport dglimport torchimport torch.nn as nnimport torch.nn.functional as FUsing backend: pytorchimport dgl.datadata原创 2021-05-26 10:40:35 · 2489 阅读 · 0 评论 -
GNN Tricks《Bag of Tricks of Semi-Supervised Classification with Graph Neural Networks》
Wang Y. Bag of Tricks of Semi-Supervised Classification with Graph Neural Networks[J]. arXiv preprint arXiv:2103.13355, 2021.我在浏览OGB排行榜代码的时候偶然发现了一篇关于GNN的Tricks的文章,作者是DGL Team的大佬,这篇貌似还没有被会议接受,不过已经在Arxiv上preprint出来了。本文改进后的几个模型在几个OGB数据集上的表现都不错。所以就赶快拿过来看看,学.原创 2021-04-14 08:43:36 · 784 阅读 · 2 评论 -
C&S《Combining Label Propagation and Simple Models Out-performs Graph Neural Networks》理论与实战
C&SHuang Q, He H, Singh A, et al. Combining Label Propagation and Simple Models Out-performs Graph Neural Networks[J]. arXiv preprint arXiv:2010.13993, 2020.本文主要提出了一种图上更好更快的技巧 Correct and Smooth (C&S),以纠正和平滑预测值。搭配这种技巧,很多「不使用图结构」的baseline模型在(直推式原创 2021-03-29 16:30:42 · 1348 阅读 · 2 评论 -
CentOS8安装NVIDIA显卡驱动、CUDA和Anaconda
CentOS8安装NVIDIA显卡驱动和CUDA参考:CentOS nvidia+cuda+cudnn 安装安装英伟达显卡驱动1、检查是否安装了NVIDIA的GPU(硬件层面):lspci | grep -i nvidia2、安装GCC、kernal组件、dkms等sudo yum install gccsudo yum install gcc-c++sudo yum -y install kernel-develsudo yum -y install kernel-headerss原创 2021-03-26 09:32:52 · 12383 阅读 · 3 评论 -
CNN中2d卷积算子的分析与实验
CNN中2d卷积算子的分析与实验为了和之前的GNN中图卷积算子的实验相对应,本次实验主要对CNN中的2d卷积进行了分析。在CNN中,2d卷积作为一种基本的算子,广泛应用于很多模型当中,例如LeNet、AlexNet、GoogleNet、ResNet。和GNN不同,各种不同CNN模型的卷积操作都是一致的,即(在pytorch中)都是用函数torch.nn.Conv2d为基础来构建整个模型(只不过卷积的参数略有区别),具体模型结构可以。因此,使用何种模型进行实验反而不那么重要了。经典的模型结构可以参考:h原创 2021-03-15 17:34:52 · 1438 阅读 · 1 评论 -
我向OGB排行榜提交代码的经历
ogbn_arxiv_GCN_resThis is an improvement of baesline on the ogbn-arxiv dataset.我的代码:https://github.com/ytchx1999/ogbn_arxiv_GCN_resogbn-arxivThe framework is shown in the figure.Improvement Strategy:add skip-connection inspired by DeeperGCNadd ini原创 2021-02-21 12:55:04 · 1895 阅读 · 5 评论 -
引文网络数据集PyG代码
PyG-citation-networkGNN模型在引文网络数据集上的代码,包括Cora、Citeseer、Pubmed、ogbn-arxiv我的代码:https://github.com/ytchx1999/PyG-citation-network参考代码:https://github.com/snap-stanford/ogb/blob/master/examples/nodeproppred/arxiv/gnn.pyhttps://github.com/rusty1s/pytorch_ge原创 2021-02-20 10:02:58 · 1174 阅读 · 0 评论 -
OGB数据集《Open Graph Benchmark: Datasets for Machine Learning on Graphs》
OGB数据集之前一直在几个玩具数据集上跑模型,发现了很多问题。看了OGB论文里的一些描述,我也深有体会,感觉很多东西都说到我心里去了。预计再发展几年吧,OGB也能像ImageNet那样,成为图表示学习领域中的一个统一的标准。Hu W, Fey M, Zitnik M, et al. Open graph benchmark: Datasets for machine learning on graphs[J]. arXiv preprint arXiv:2005.00687, 2020.数据集是模原创 2021-02-11 09:54:57 · 5335 阅读 · 3 评论 -
GNN各阶段执行时间实验【Citeseer、Pubmed、Reddit、OGB数据集】
数据集介绍数据集图节点边特征标签(y)Citeseer13327473237036Pubmed119717443385003Reddit12329651160691960241ogbn-arxiv1169343116624312840ogbn-products124490296185914010047实验结果Citeseer各阶段的执行时间/msSampleLinearMessag原创 2021-02-07 10:07:25 · 6772 阅读 · 8 评论 -
GNN各阶段与BFS算法的联系
GNN各阶段与BFS算法的联系之前把GNN的各阶段细分为Linear、Message、Aggregate、Update,再加上最开始的Sample阶段,进行了实验。汇报的时候老师提出了「哪个阶段用到了图遍历中BFS算法的思想」这个问题,让我再去确认一下,下次再说一下。和师姐又讨论了一下,大致得出了如下的结论。图遍历从广义上其实可以理解为中心节点去访问自己邻居的过程,而BFS算法核心的逻辑/流程也就是从一个节点出发,访问其邻居节点并将其加入队列(活节点表)。所以从访问邻居节点(属性)这个角度来看,Samp原创 2021-02-05 19:11:23 · 481 阅读 · 0 评论 -
GNN与VCPM编程模型各阶段运算的对比分析
GNN各阶段运算的分析这里,我们将GNN主要分为Message、Aggregate和Update这三个阶段。具体细节可以参考我的这篇博客:《GNN典型模型的各阶段执行时间与算子分析》。Message阶段主要是对邻居节点的特征进行变换。Aggregate阶段主要是聚合(scatter)上一步处理好的每个节点的邻居节点特征(生成一条消息)。Update阶段主要是通过当前节点表示和上一步生成的消息,更新当前层节点的嵌入表示。图计算编程模型(以VCPM为例)各阶段运算的分析文章中将VCPM主要分原创 2021-01-26 10:09:58 · 518 阅读 · 0 评论 -
GNN典型模型的各阶段执行时间与算子分析
GNN模型的阶段划分图卷积算子(operator)可以被表示为消息传递机制。xi′=Update(xi,Aggregatej∈N(i)(Message(xi,xj,ej,i)))\mathbf{x}_i^{\prime} = \mathbf {Update} \left( \mathbf{x}_i, \mathbf {Aggregate}_{j \in \mathcal{N}(i)} \left( \mathbf{Message} \left(\mathbf{x}_i,原创 2021-01-25 16:08:20 · 2610 阅读 · 2 评论 -
JK-Nets实验记录
1、准备工作按照JK-Nets的paper中的划分方式,训练集(60%) 、验证集(20%)、测试集(20%)。数据集划分(数量)训练集(60%)验证集(20%)测试集(20%)Cora1624542542Citeseer1995666666Pubmed1182939443944超参数也严格遵循了paper中的取值。超参数等训练因素取值/范围loss_funcNLLLossoptimizerAdamlr0原创 2021-01-23 11:41:28 · 1439 阅读 · 1 评论 -
GraphSAGE模型实验记录(简洁版)【Cora、Citeseer、Pubmed】
1、准备工作数据集数据集图节点边特征标签(y)Cora12708542914337Citeseer13327473237036Pubmed119717443385003数据集划分方式:https://github.com/kimiyoung/planetoid (Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, Revisiting Semi-Supervised Lear原创 2021-01-18 15:46:14 · 2605 阅读 · 2 评论 -
GraphSAGE模型实验记录【Cora、Citeseer、Pubmed】
1、准备工作数据集数据集#图#节点#边#特征#标签(y)Cora12708542914337Citeseer13327473237036Pubmed119717443385003数据集划分方式:https://github.com/kimiyoung/planetoid (Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, Revisiting Semi-Supervised原创 2021-01-11 17:39:10 · 4047 阅读 · 2 评论