PyG 使用过程中出现的一些小bug。GAE 的negative_sampling中

本文记录了在运行OGB-Examples过程中遇到的问题及其解决方案,包括tensor.div关键字不匹配、longtensor类型错误等,并介绍了GAEpyg的不同版本及GPU使用情况,还探讨了PyG中稀疏张量的访问方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近跑ogb-examples发现了一点小问题记录一下

1. tensor.div(‘rounding_floor’)

在这里插入图片描述
向下整除出现问题,这个关键字不匹配

检索位置是 在 torch_geometric/utils/negative_sampling中
在这里插入图片描述
div是除法,且在本地jupyter没有报错,服务器这边出现这个问题

解决办法:修改这个包了,先进行除法,再进行向下取整

在这里插入图片描述

2. long tensor类型错误

在这里插入图片描述
这里是跑gae的时候,代码还是采用了 negative_sampling来生成链接预测的负边。因此出现问题,和问题1一样定义到这个包的源代码,发现这里返回的类型是tensor,因此强制转换
在这里插入图片描述

解决

在这里插入图片描述

3. 顺手记录一下 gae的gpu-usage

3.1 Cora

在这里插入图片描述

3.2 CiteSeer

在这里插入图片描述

3.3 PubMed

在这里插入图片描述

3.4 ogbn-arxiv

在这里插入图片描述

4.GAE pyg

PyG的gae是实现了两个版本,之前一直只认为就是一种, encoder得到Z,Z和Z转置求得内积
这里还有一个版本,不是重构出整个矩阵,给定一部分 正边对。通过edge_index重构出部分边,还有个就是重构整个A

在这里插入图片描述
重构损失 通过decoder(InnerDecoder)来计算
在这里插入图片描述

GPU的使用都不是很多,如果不采用这种直接重构邻接矩阵 (或者像最初两个矩阵直接相减naive,可能就是导致cudaout memory的原因,pyG这里rencon调用的decoder 计算pos和neg ,因此没有实现 forward_all 的那种损失计算

5. pyG 稀疏张量的访问方法

a._indices() 和a._values()
COO稀疏张量又可以分为两种:uncoalesced和coalesced。其中uncoalesced允许同一个索引下存在多个不同的值(相同的边有多个值),而coalesced则不行
判断稀疏张量是哪种类型
在这里插入图片描述

coalesced 稀疏矩阵
在这里插入图片描述

在这里插入图片描述
下面的两种方法 是a.indices() a.values() 是coalesced 稀疏张量的方法,因此若想用 则先把 uncoalesced的稀疏张量转为.coalesce() 再用,或者采用 a._indices()
在这里插入图片描述
在这里插入图片描述
都是10这个位置的值,坐标相同是 uncoalesce的 转化为coalesce, 两个相同index的值 加起来了
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值