前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PyTorch实现的“MixHop

PyTorch实现的“MixHop

作者头像
代码医生工作室
发布2019-06-21 23:07:59
1.4K0
发布2019-06-21 23:07:59
举报
文章被收录于专栏:相约机器人相约机器人

https://github.com/benedekrozemberczki/MixHop-and-N-GCN

最近的方法通过近似图拉普拉斯算子的特征基,将来自欧几里德域的卷积层概括为图结构数据。计算效率和广泛使用的Kipf&Welling图形ConvNet过度简化了近似,有效地将图形卷积渲染为邻域平均算子。这种简化限制了模型学习delta运算符,这是图拉普拉斯算子的前提。在这项工作中,提出了一个新的图形卷积层,它混合了邻接矩阵的多个幂,允许它学习delta运算符。层显示与GCN相同的内存占用和计算复杂性。在合成图数据集和几个真实世界的引文图上说明了提出的图层的强度,

该存储库提供了MixHop和N-GCN的PyTorch实现,如文件中所述:

https://arxiv.org/pdf/1905.00067.pdf

http://sami.haija.org/papers/high-order-gc-layer.pdf

要求

代码库在Python 3.5.2中实现。用于开发的软件包版本如下。

数据集

代码获取csv文件中图形的边缘列表。每行表示由逗号分隔的两个节点之间的边。第一行是标题。节点应从0开始编制索引。目录中Cora包含 示例图表input/。除了edgelist之外,还有一个带有稀疏特征的JSON文件和一个带有目标变量的csv。

特征矩阵是稀疏二进制一它被存储为JSON。节点是json的键,特征索引是值。对于每个节点要素,列ID将存储为列表的元素。特征矩阵的结构如下:

所述目标矢量是具有两列和标头一个csv,第一包含节点标识符第二目标。此csv按节点标识符排序,目标列包含从零开始索引的类mebership。

节点ID目标

选项

训练N-GCN / MixHop模型由src/main.py脚本处理,该脚本提供以下命令行参数。

输入和输出选项

代码语言:javascript
复制
  --edge-path       STR    Edge list csv.         Default is `input/cora_edges.csv`.  --features-path   STR    Features json.         Default is `input/cora_features.json`.  --target-path     STR    Target classes csv.    Default is `input/cora_target.csv`.

型号选项

代码语言:javascript
复制
  --model             STR     Model variant.                 Default is `mixhop`.                 --seed              INT     Random seed.                   Default is 42.  --epochs            INT     Number of training epochs.     Default is 2000.  --early-stopping    INT     Early stopping rounds.         Default is 10.  --training-size     INT     Training set size.             Default is 1500.  --validation-size   INT     Validation set size.           Default is 500.  --learning-rate     FLOAT   Adam learning rate.            Default is 0.01.  --dropout           FLOAT   Dropout rate value.            Default is 0.5.  --lambd             FLOAT   Regularization coefficient.    Default is 0.0001.  --layers            LST     Layer sizes for model.         Default is [64, 64, 64].

例子

以下命令学习神经网络并在测试集上进行评分。在默认数据集上训练模型。

代码语言:javascript
复制
python src/main.py

训练MixHop模型100个时代。

代码语言:javascript
复制
python src/main.py --epochs 100

提高学习率和辍学率。

代码语言:javascript
复制
python src/main.py --learning-rate 0.1 --dropout 0.9

使用扩散顺序2训练模型:

代码语言:javascript
复制
python src/main.py --layers 64 64

训练N-GCN模型:

代码语言:javascript
复制
python src/main.py --model ngcn
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 相约机器人 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档