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


    最近跑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的值 加起来了
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    使用jquery上传多个图像
    HTML零基础入门(上)
    第四天:java基础复习(集合)
    UOS统信操作系统QIcon::fromTheme详解
    【算法】算法题-20231116
    c++基础语法之内联函数
    maven与Jenkins
    当低代码遇上私有化部署,真是赞爆了!
    22 行为型模式-状态模式
    EPSS 解读:与 CVSS 相比,孰美?
  • 原文地址:https://blog.csdn.net/qq_40926715/article/details/127133217