组队学习-图预测 Taks 07

图神经网络-针对异构图的预测问题,以及每种网络可以用于的任务类型 异构图介绍 异构图神经网络简介 异构图神经网络任务介绍 Heterogeneous Graph Neural Network (HetGNN) Relation-aware Graph Convolutional Networks (R-GCN) Heterogeneous Information Network Embedding (HINE) Heterogeneous Graph Attention Network (HAN) Graph Transformer Networks for Hetero 阅读详情

1、知识点回顾

   (1)Dataset基类简介

    在PyG中,输入数据可以自定义数据类型,需要继承基类torch_geometric.data.Dataset,定义len()函数和get()函数。如果数据不需要下载,可以不定义函数download()和process().

    (2)图样本封装成批和与DataLoader类

     图分类和图预测的图像类型多种多样,想要将这些数据进行输入,就需要进行图样本的封装。在PyTorch Geometric中,程序将小图放在大图的对角线上构成大图。PyTorch Geometric使用torch_geometric.data.__inc__()和torch_geometric.data.__cat_dim__()进行相应的处理。

     图的匹配分为源图和目标图,分别使用x_s.size(0)和x_t.size(0)进行节点的增值。 

    (3)二部图。二部图的邻接矩阵定义两种类型的节点之间的连接关系。

 

class BipartiteData(Data):
    def __init__(self, edge_index, x_s, x_t):
        super(BipartiteData, self).__init__()
        self.edge_index = edge_index
        self.x_s = x_s
        self.x_t = x_t


def __inc__(self, key, value):
    if key == 'edge_index':
        return torch.tensor([[self.x_s.size(0)], [self.x_t.size(0)]])
    else:
        return super().__inc__(key, value)


edge_index = torch.tensor([
    [0, 0, 1, 1],
    [0, 1, 1, 2],
])
x_s = torch.randn(2, 16)  # 2 nodes.
x_t = torch.randn(3, 16)  # 3 nodes.

data = BipartiteData(edge_index, x_s, x_t)
data_list = [data, data]
loader = DataLoader(data_list, batch_size=2)
batch = next(iter(loader))

print(batch)

print(batch.edge_index)

 

Batch(batch=[6], edge_index=[2, 8], ptr=[3], x_s=[4, 16], x_t=[6, 16])
tensor([[0, 0, 1, 1, 3, 3, 4, 4],
        [0, 1, 1, 2, 3, 4, 4, 5]])

 2、代码实践

    (1)图的匹配

import torch
from torch_geometric.data import Dataset, DataLoader

class PairData(Data):
    def __init__(self, edge_index_s, x_s, edge_index_t, x_t):
        super(PairData, self).__init__()
        self.edge_index_s = edge_index_s
        self.x_s = x_s
        self.edge_index_t = edge_index_t
        self.x_t = x_t

class PairData(Data):
    def __init__(self, edge_index_s, x_s, edge_index_t, x_t):
        super(PairData, self).__init__()
        self.edge_index_s = edge_index_s
        self.x_s = x_s
        self.edge_index_t = edge_index_t
        self.x_t = x_t

    def __inc__(self, key, value):
        if key == 'edge_index_s':
            return self.x_s.size(0)
        if key == 'edge_index_t':
            return self.x_t.size(0)
        else:
            return super().__inc__(key, value)

edge_index_s = torch.tensor([
    [0, 0, 0, 0],
    [1, 2, 3, 4],
])
x_s = torch.randn(5, 16)  # 5 nodes.
edge_index_t = torch.tensor([
    [0, 0, 0],
    [1, 2, 3],
])
x_t = torch.randn(4, 16)  # 4 nodes.

data = PairData(edge_index_s, x_s, edge_index_t, x_t)
data_list = [data, data]
loader = DataLoader(data_list, batch_size=2)
batch = next(iter(loader))

print(batch)
print(batch.edge_index_s)
print(batch.edge_index_t)
Batch(edge_index_s=[2, 8], edge_index_t=[2, 6], x_s=[10, 16], x_t=[8, 16])
tensor([[0, 0, 0, 0, 5, 5, 5, 5],
        [1, 2, 3, 4, 6, 7, 8, 9]])
tensor([[0, 0, 0, 4, 4, 4],
        [1, 2, 3, 5, 6, 7]])

     (2)二部图

3、作业:

    在此图预测任务实践中: 我们将前面所学的基于GIN的图表示学习神经网络和超大规模数据集类的创建方法付诸于实际应用;我们构建了一种很方便的设置不同参数进行试验的方法,不同试验的过程与结果信息通过简单的操作即可进行比较分析。

python main.py  --task_name GINGraphPooling\    # 为当前试验取名
                --device 0\                     
                --num_layers 5\                 # 使用GINConv层数
                --graph_pooling sum\            # 图读出方法
                --emb_dim 256\                  # 节点嵌入维度
                --drop_ratio 0.\
                --save_test\                    # 是否对测试集做预测并保留预测结果
                --batch_size 512\
                --epochs 100\
                --weight_decay 0.00001\
                --early_stop 10\                # 当有`early_stop`个epoches验证集结果没有提升,则停止训练
                --num_workers 4\
                --dataset_root dataset          # 存放数据集的根目录

图分类预测 原创:梁华雄 导入 ​ 图级别的预测可以完成对整个图属性的预测,比如在生化预测任务中,可以实现对某个分子是否产生变异进行预判。在非欧几里得的数据结构中,如社交网络(facebook),生物网络(基因,分子),基础设施网络(能源,交通,互联网,通信)具有重要的意义。 1. 原理 整图预测是针对图层面的学习任务,比如判断某药物分子是否具有某种理化性质,再比如判断某社团是否具有欺诈可能,这需要我们对整个图提取它的特征表示,然后再基于此构建我们的学习任务,图的整体特征无外乎来源于三部分:1)节点特征;2)边特征;3 阅读详情

相关推荐

单片机技术入门与实战:从零基础到项目开发

单片机(MCU)作为嵌入式系统的核心组件,集成了CPU、内存和各种接口电路,广泛应用于智能家居、工业控制和汽车电子等领域。其工作原理基于实时控制和低功耗设计,通过定时器、中断系统和通信接口等功能模块实现各种控制任务。在物联网和智能硬件快速发展的背景下,掌握单片机开发技术成为电子工程师的重要技能。本文以STM32和PIC系列为例,详细解析单片机的基本概念、功能模块和选型指南,并分享从入门到项目实战的系统学习方法,帮助开发者在3-6个月内快速掌握这一关键技术。

weixin_35753291的博客 652

torch_geometric/data/collate.py TypeError: __inc__() takes 3 positional arguments but 4 were given

使用torch_geometric.data.Batch.from_data_list会出现TypeError: inc() takes 3 positional arguments but 4 were given在复现别人代码时程序报错:。 Debug发现是方法出了问题。 源代码推荐PYG版本为1.6,而我的PYG版本为2.0。 根据github确定为版本问题。当PYG>=2.0以后data.__inc__的参数发生变化。一、如果你能找到你代码中的__cat_dim__()(注意不是源文件的__cat_

weixin_44861304的博客 1853

Win10/Win11系统下,用VSCode编译Betaflight固件最全避坑指南(从GCC安装到HEX生成)

本文详细介绍了在Win10/Win11系统下使用VSCode编译Betaflight固件的完整流程,包括GCC安装、环境变量配置、终端选择、Make工具安装等关键步骤,帮助开发者避开常见陷阱,高效生成HEX文件。特别针对VSCode环境优化和编译错误排查提供了实用解决方案。

weixin_42557803的博客 415

Task07 图预测任务

Task07 图预测任务 一、超大规模数据集类的创建 数据集规模超级大,我们很难有足够大的内存完全存下所有数据。 需要一个按需加载样本到内存的数据集类。 1.1 Dataset基类 通过继承torch_geometric.data.Dataset基类来自定义一个按需加载样本到内存的数据集类。 还需要实现:len() 、get()方法。 无需下载数据集原文件的情况,我们不重写(override)download方法即可跳过下载。对于无需对数据集做预处理的情况,我们不重写process方法即可跳

maozixiang的博客 251

2024广东省职业技能大赛云计算——集群部署GitLab

题目是这样的:在Kubernetes集群中新建命名空间gitlab-ci,将GitLab部署到该命名空间下,Deployment和Service名称均为gitlab,以NodePort方式将80端口对外暴露为30880,设置GitLab服务root用户的密码为admin@123,将项目包demo-2048.tar.gz导入到GitLab中并命名为demo-2048。GitLab是一个功能强大且灵活的 DevOps 平台,为开发团队和企业提供了从代码管理到持续集成、交付和部署的一整套解决方案。

kuuuugua的博客 4396

[V-10]ARMv8/v9-CPU Virtualization-CPU虚拟化架构简介(vCPU/vPE)

本文简要介绍了CPU虚拟化架构的基础知识。

基层架构师的分享 1267

Graphormer:Transformer用于图预测任务

文章信息 文章题为“Do Transformers Really Perform Bad for Graph Representation?”,该文章发表于2021年NeurIPS会议上。文章提出Graphormer图预测任务。摘要 Transformer架构已经成为许多领域的主导选择,例如自然语言处理和计算机视觉。此外,与主流GNN变体相比,它在流行的图级预测排行榜上的表现并不具有竞...

zuiyishihefang的博客 1780

QGIS:安装Deepness插件+应用

简单的描述了deepness的安装应用历程,重点是记录博主本次遇到的坑

fengyi157的博客 2336

图神经网络基础--图预测任务实践

图神经网络基础--图预测任务实践

发呆的比目鱼的博客 776

斑马打印机状态监控进阶:不用SDK也能获取打印状态的3种野路子

本文介绍了三种不依赖官方SDK的斑马打印机状态监控方法,包括SGD命令、TCP端口嗅探和共享打印机日志分析。这些方案适用于老旧系统或网络受限环境,帮助运维人员实时掌握打印状态,提升设备管理效率。特别适合工业自动化和物流仓储场景中的应急处理。

weixin_42628688的博客 427

《UDS协议从入门到精通》系列——图解0x34:请求下载

上传下载类服务之0x34-请求下载,图解请求+响应格式,直观易懂,快速上手!!

车载系统攻城狮 4928

组队学习-总结 Taks 08

在参加本次组队学习之前,本人一直相对图神经网络有系统的学习,但是由于种种原因未能如愿。近年来,一直关注Datawhale的内容,正好有图神经的组队学习,于是就报名了。经过20多天的艰苦学习,在实验室有诸多的任务的情况下,仍在坚持完成组队学习的各项内容。通过Datawhale的组队学习,收获如下: (1)对图深度学习有基本的认识,对图论知识、图分类、图预测等有初了解。 (2)熟悉了PyG库的安装和使用,并在colab和linux上完成相关的作业。在完成过程中,遇到诸...

shell的专栏 287

(八)DDR_PHY架构及功能——(PUB组成、初始化及Training流程、Clock关系)

文章目录一、DDR_PHY结构组成1.1、DDR Memory子系统1.2、DDR_PHY架构组成1.3、PUB模块功能实现流程1.3.1、DDR系统初始化流程1.3.2、PLL初始化流程 一、DDR_PHY结构组成 1.1、DDR Memory子系统   Memory子系统主要由DDR Controller和DDR_PHY(含DDR_IO)两个部分组成。DDR Controller主要承担其它子系统(如CPU)与Memory子系统进行数据交互时的传输效率及调度,DDR_PHY主要负责数据交互过程中的传输速

Mr.翟的博客 1万+

组队学习-图神经网络 Taks 06

1、基于图同构网络(GIN)的图表征 采用GINNodeEmbedding模块对图上每一个节点做节点嵌入(Node Embedding),得到节点表征;然后对节点表征做图池化得到图的表征;最后用一层线性变换对图表征转换为对图的预测。 基于结点表征计算得到图表征的方法有: sum:对节点表征求和; mean:对节点表征求平均; max:取节点表征的最大值,对一个batch中所有节点计算节点表征各个维度的最大值; attention:基于Attention对节点表征加权求和 set2set:...

shell的专栏 1131

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Datawhale组队学习-图神经网络(一)

Datawhale组队学习-图神经网络(一) Taks 01 学习书籍、工具及软件 本次学习资料为Datawhale社区在Github上的开源项目和官方文档 电脑配置为Macbook m1,操作系统为MacOS 11.4 Big Sur。所用编程环境为Anaconda 下的 Jupyter Notebook,python 3.8.8。 学习图神经网络的原因 在过去的深度学习应用中,我们接触的数据形式主要是这四种:矩阵、张量、序列(sequence)和时间序列(time series)。然而来自现实世界应

weixin_39188290的博客 639

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Datawhale第25期组队学习】Task03:基于线性模型的异常检测

Taks03 基于线性模型的异常检测 文章目录Taks03 基于线性模型的异常检测0 写在前面1 概述2 线性回归2.1 基于自变量与因变量的线性回归2.1.1梯度下降法优化目标函数2.1.2最小二乘法的正规方程法优化目标函数2.1.3 两种方法的比较2.2 基于异常检测的线性回归3 主成分分析13.1 原理推导3.2 归一化问题3.3 PCA算法实现4 总结5 参考资料 0 写在前面 上一个博客中,我们讨论了基于统计学的异常检测算法,其中还通过pyod库展示了两个demo,分别是一元正态分布的例子和HBO

如是我闻__一时__的博客 358

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

torch_geometric.data 自建数据集

前言 博客大部分都是搬运文档,是文档的翻译版,没什么意思。精细的内容还要结合文档去看。 这个只是给你大致概念,不至于看文档看的头昏眼花,不是手把手教。 文档: https://pytorch-geometric.readthedocs.io/en/latest/notes/introduction.html 一针见血 数据集有两种,一个只存一个图的ImMemory类型,另一个是要存多个图DataSet的,需要额外实现len和get函数。 ImMemory要实现的基本上就是官网给的: import torch

Yonggie的博客 1万+

第十九课.Pytorch-geometric扩展

目录用GraphGym管理实验 用GraphGym管理实验

白景屹的博客 3173

torch_geometric.data.Data的学习

功能:图数据的构造器,采用的是COO的格式构造的图数据(坐标的格式),这是后续torch_geometric相应的图处理包可以处理的数据结构 导入包: from torch_geometric.data import Data 输入参数Arg: x:表示图所有节点的特征,维度是[Num_nodes, node_feature_dimension] 数据类型可以是dtype=float edge_index:表示边的索引,注意这里描述的边仅仅是连接关系,不包含边权重的信息的,边的权重信息要通过另外

shichongx的博客 2189

图神经网络_07-图预测任务

图预测任务 自定义数据集 要完成一个完整的图预测任务,首先我们来创建一个自己的数据集。我们通过继承torch_geometric.data.Dataset基类来自定义一个按需加载样本到内存的数据集类。 import os.path as osp import torch from torch_geometric.data import Dataset, download_url class MyOwnDataset(Dataset): def __init__(self, root, transf

coldfish的博客 1249

机器学习之ImageAI:图像预测

以下内容是基于ImageAI的ResNet模型进行学习,所用的相关设置如下: (具体教程可见文末推荐网址1号,如若有相关建议可分享共勉,加油)   工具: JetBrains Pycharm Community Edition 2018.3.1   环境: python 3.7 (Project Interpreter是用Anaconda3-5.3.1中的python.exe,另外为...

qq_34438969的博客 7808

GNN学习7:按需获取的数据集类的创建

超大规模数据集类的创建 在一些应用场景中,数据集规模超级大,我们很难有足够大的内存完全存下所有数据。需要一个按需加载样本到内存的数据集类。 Dataset基类简介 在PyG中,我们通过继承torch_geometric.data.Dataset基类来自定义一个按需加载样本到内存的数据集类。 继承torch_geometric.data.InMemoryDataset基类要实现的方法,继承此基类同样要实现,此外还需要实现以下方法: len():返回数据集中的样本的数量。 get():实现加载单个图的操作。注

lukem44的博客 1038

地图数据处理模型方法——预测模型方法

一、初识 1.1 对预测地图的理解 1.2 对预测模型的简单了解 1.2.1 回归分析模型 1.2.2 时间序列分析模型 1.2.3 灰色系统理论 二、预测模型的使用 2.1 回归分析 2.1.1 几组概念 2.1.1.1 相关关系与函数关系 2.1.1.2 回归模型、回归函数和回归方程的区别 2.1.1.3 相关分析和回归分析、回归分析与拟合问题 2.1.1.4 相关系数、相关指数 2.1.2 一元线性回归 2.1.3 多元线性回归 2.1.4 拟合效果分析 2.1.4.1 残差的样本方差

ch206265的博客 3270

图神经网络/GNN(七)-超大规模数据集类的创建+图预测任务实践

麻烦助教稍等修改一会哈,还在补充中…谢谢~

weixin_41968248的博客 1316

Datawhale 6月学习——图神经网络:图预测任务实践

前情回顾 图神经网络:图数据表示及应用 图神经网络:消息传递图神经网络 图神经网络:基于GNN的节点表征学习 图神经网络:基于GNN的节点预测任务及边预测任务 图神经网络:超大图上的节点表征学习 图神经网络:基于图神经网络的图表征学习 1 图预测任务描述 1.1 任务简述 本次任务所涉及的图预测任务,是一个回归任务,目的是,学习图结构的一个合理的图表征方式,学习目标的检测方式是与benchmark数据集上打好的数值标签进行对比。 这个数值标签可以是药物疗效评价等。 具体一点的描述的话,就是对某一个已有

qq_40990057的博客 5601

来了来了!趋势预测算法大PK!

作者 |王哲责编 |Carol头图 | 优快云 付费下载自视觉中国趋势预测在很多应用场景中都会起到至关重要的作用,比如淘宝商家会考虑库存量应该保持在多少才能够满足客户需求,商场希望...

AI科技大本营 1万+
上一篇: 组队学习-图神经网络 Taks 06
下一篇: 组队学习-总结 Taks 08
shell
博客等级 码龄16年 25粉丝 24原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值