GCN知识总结

news2025/1/11 11:41:19
关键点:
1.理解图结构的形式
2.如何使用邻接矩阵实现其图结构形式
3.GCN卷积是如何实现节点特征更新的
核心公式:
特征提取:
处理好的x 代表节点特征,然后*权重,再*邻接。
A尖换元后:
forward函数
传播规则:
loss:
1.数据处理有价值的代码:
对labels 列,进行 one hot 编码。
就是将 有限个 不管是什么类型的数据,用 不同顺序的01数表示出来。
def encode_onehot(labels):
    classes = set(labels)
    //for i,c in enumerate(classes):
       // print(i,c)
    classes_dict = {c: np.identity(len(classes))[i, :] for i, c in
                    enumerate(classes)}
    //print(classes_dict)
    labels_onehot = np.array(list(map(classes_dict.get, labels)),
                             dtype=np.int32)
    return labels_onehot
labels = encode_onehot(idx_features_labels[:, -1])
还能把1的位置转换成一维的
labels = torch.LongTensor(np.where(labels)[1])
同理,给了很杂乱的 结点input,可以用 dic去编码。{原label:现label}
idx = np.array(idx_features_labels[:, 0], dtype=np.int32)
idx_map = {j: i for i, j in enumerate(idx)}
随后用编码过的节点,去 编码边
edges_unordered = 边数据
edges = np.array(list(map(idx_map.get, edges_unordered.flatten())),dtype=np.int32).reshape(edges_unordered.shape)
给了边  构建 邻接矩阵且为稀疏矩阵
adj = sp.coo_matrix((np.ones(edges.shape[0]), (edges[:, 0], edges[:, 1])),
                        shape=(labels.shape[0], labels.shape[0]),
                        dtype=np.float32)
print(adj)
计算转置矩阵将 有向图转化为无向图
adj = adj + adj.T.multiply(adj.T > adj) - adj.multiply(adj.T > adj)
归一化函数
def normalize(mx):
    rowsum = np.array(mx.sum(1)) #矩阵行求和
    r_inv = np.power(rowsum, -1).flatten() ##求和的倒数
    r_inv[np.isinf(r_inv)] = 0.#由于原本为0的数求倒数后可能会产生极大值,这里设置极大值为0
    r_mat_inv = sp.diags(r_inv) ##构造对角线矩阵
    mx = r_mat_inv.dot(mx)
    return mx
adj = normalize(adj + sp.eye(adj.shape[0])) #对应论文中公式,加上了I矩阵
这种归一化方式,将不再单单地对领域节特征点取平均,它不仅 考虑了节点i ii的 ,也考虑了邻接节点j jj的度,
当邻居节点 j jj 度数较大时,它在聚合时贡献地会更少
2.缺点:
第一,GCN需要将整个图放到内存和显存,这将非常耗内存和显存,处理不了大图;
第二,GCN在训练时需要知道整个图的结构信息(包括待预测的节点), 这在现实某些任务中也不能实现(比如用今天训练的图模型预测明天的数据,那么明天的节点是拿不到的)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1941630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot+Vue的篮球竞赛预约平台(带1w+文档)

基于SpringBootVue的篮球竞赛预约平台(带1w文档) 基于SpringBootVue的篮球竞赛预约平台(带1w文档) 本系统提供给管理员对首页,个人中心,用户管理,项目分类管理,竞赛项目管理,赛事预约管理,系统管理等诸多功…

C++中的模板函数和模板类

模板是 C 中的泛型编程的基础,编写与类型无关的通用代码,是代码复用的一种手段。 作为强类型语言,C 要求所有变量都具有特定类型,由程序员显式声明或编译器推导。 但是,许多数据结构和算法无论在哪种类型上操作&#x…

【Java开发实训】day05——数组常见算法

目录 一、数组翻转 1.1示例代码 1.2适用场景 二、冒泡排序 2.1示例代码 2.2适用场景 三、二分查找 3.1示例代码 3.2适用场景 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo…

Elasticsearch中任务管理怎么做?

一个ES集群研发在清理数据时使用了delete_by_query,导致集群性能严重受影响,影响了正常的业务。为了快速恢复集群正常状态,考虑把还在进行的delete_by_query任务清除掉。 先查看当前集群的任务 GET _cat/tasks?v发现delete_by_query的任务…

Git笔记:(上传Git、Git获取文件版本、删除、统计)

目录 一、上传文件到github 1.1 配置用户名和邮箱 1.2 初始化本地仓库 1.3 添加项目目录下所有文件至本地仓库 1.4 使用如下命令加入注释提交 1.5 将本地仓库与远程仓库相连接 1.6 将本地仓库中的文件推送至指定的远程仓库中 二、git获取不同版本 2.1 git下载特定历史…

[MySQL]02 存储引擎与索引,锁机制,SQL优化

Mysql存储引擎 可插拔式存储引擎 索引是在存储引擎底层上实现的 inno DB MySQL默认存储引擎: inno DB高可靠性和高性能的存储引擎 DML操作遵循ACID模型支持事务行级锁,提高并发访问性能支持外键 约束,保证数据完整性和可靠性 MySAM MySAM是MySQL的早期引擎 特点: 不支持事…

【数据结构_C语言】归并排序—文件类型

文章目录 1.排序定义2. 代码实现 1.排序定义 内排序:数据量相对少一些,可以放到内存中排序。 外排序:数据量较大,内存中放不下,数据放到磁盘文件中,需要排序。 归并排序: 2. 代码实现 void…

基于CNN-BiLSTM的数据回归预测

代码原理 基于CNN-BiLSTM的数据回归预测是一种结合卷积神经网络(CNN)和双向长短期记忆网络(BiLSTM)的混合模型,用于处理和预测时间序列数据。以下是该方法的简单原理及流程: 原理 (1&#xf…

OSGB整体或自定义区域转换为3DTiles

工具 OSGB源数据灵易智模倾斜摄影编辑平台(下称OPEditor) 操作步骤 打开倾斜摄影 打开软件(登录即注册,直接用手机号登录)使用OPEditor打开OSGB原始倾斜数据,将会看到如下页面 整体导出为3DTiles 在右侧节点树上鼠标右键点…

“为你写诗”,与ai“推敲”码字:第一次在严谨的csdn发布只有“思绪”没有代码的笔记(ai对话实录)

与ai“推敲”码字,第一次在严谨的csdn发布只有“思绪”没有代码的笔记(ai对话实录)。 (笔记模板由python脚本于2024年07月22日 21:13:08创建,本篇笔记适合本文无关代码,爱思考穷探究的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&…

力扣21-30题(数学的简单的结束和数组的前几道)

20240721 1.题和解析693. 交替位二进制数405. 数字转换为十六进制数171 excel 表序列号 从这之后的是数组了2011. 执行操作后的变量值1929. 数组串联1720. 解码异或后的数组异或解析:2574. 左右元素和的差值101. 对称二叉树LCP 06. 拿硬币1365. 有多少小于当前数字的…

org.springframework.context.ApplicationContext发送消息

1、创建消息的实体类 package com.demo;/*** 监听的实体类**/ public class EventMessage {private String name;public EventMessage(String name) {this.name name;}public String getName() {return name;}public void setName(String name) {this.name name;} }2、创建消…

three.js NDC空间转视图空间(getViewPosition)

three.js NDC空间转视图空间 NDC空间转视图空间, 比较常用。很多效果依赖于此。 包括: GTAOShaderReflectorForSSRPassSSRShader 下面看一下它的庐山真面目。 1、计算clipW 视图空间(view) 应用投影矩阵后转换到 剪裁空间(clip)。 [ A 0 B 0 0 C D 0 0 0 E F 0 0 − 1 0 ]…

Truenas scale 配置 Official Zerotier 并设置一直固定Zerotier IP

Zerotier 安装 TrueNAS Scale -> Apps -> Discover Apps -> 搜索 Zerotier 并安装Netwoek 中填入你 zerotier 网页中的的 Network IDAuto Token (API key) zerotier网页的 Account -> API Access Tokens -> New Tokenidentity.secret 和 identity.public 通过 …

国际化技术参考

一、概述 国际化就是用户可以选择对应的语言,页面展示成对应的语言; 一个系统的国际化按照信息的所在位置,可以分为三种国际化信息: 前端页面信息后端提示信息数据库的字典类信息二、前端页面国际化 使用i18n库实现国际化 i18n国际化库思路:通过jquery或者dom操作拿到需…

【动态规划】打家劫舍

动态规划的四个解题步骤: 1、定义子问题 2、写出子问题的递推关系 3、确定dp数组的计算顺序 4、空间优化(可选)上一篇博客学的有点杂乱,这一篇从解题步骤方面整理一下动态规划这一章。 打家劫舍(难度:中等…

C++进阶中继承的全部主要内容

小编在学习完C中继承的内容之后,觉得继承的内容很重要,所以今天给大家带来的内容就是继承的主要内容,今天的内容包括继承的定义与语法,继承方式与权限,基类和派生类的类型转换赋值,继承中的隐藏&#xff0c…

数据跨境法案:美国篇下

数据跨境法案美国篇下主要介绍2018年《出口管制改革法案》(ECRA)、2018 年《外国投资风险审查现代化法案》(FIRRMA) 和《强化海外关键出口国家框架法》(ENFORCE)。其中 ECRA法案和 FIRRM 法案作为2019财年约翰S麦凯恩国家国防授权法(NDAA&…

MySQL定时备份数据,并上传到oss

1.环境准备 1.安装阿里云的ossutil 2.安装mysql 2.编写脚本 脚本内容如下 #!/bin/bash # 数据库的配置信息,根据自己的情况进行填写 db_hostlocalhost db_usernameroot db_passwordroot db_namedb_root # oss 存贮数据的bucket地址 bucket_namerbsy-backup-buck…

开源发票识别InvoiceNet项目Windows部署踩坑记(1)

今天安装在github上的InvoiceNet开源项目,准备对它进行测试,安装过程出现了一些问题,做个记录,给遇到兄弟爬坑。 第一个问题,conda的问题, 这是另外一个包管理器,不仅仅可以管理python的虚拟…