码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【dgl学习】dgl处理图中的节点/边的属性/特征/类型


    目录

    • 1 dgl.DGLGraph.nodes
      • 1.1 举个例子
    • 3 dgl.DGLGraph.edges
    • dgl.DGLGraph.edata
    • 举个例子
    • 3 参考文献

    1 dgl.DGLGraph.nodes

      函数的主要功能有两个

    • 返回图中单个节点类型的ID
    • 获取或者设置单个节点类型的特征

    主要有两个应用同构图和异构图:

    1.1 举个例子

    import dgl
    import torch
    
    # 定义同构图
    g = dgl.graph((torch.tensor([0, 1]), torch.tensor([1, 2])))
    # 定义异构图
    hg = dgl.heterograph({
        ('user', 'follows', 'user'): (torch.tensor([0, 1]), torch.tensor([1, 2])),
        ('user', 'plays', 'game'): (torch.tensor([3, 4]), torch.tensor([5, 6]))
    })
    
    # 获取节点ID
    g.nodes()
    # tensor([0, 1, 2])
    
    hg.nodes('user')
    # tensor([0, 1, 2, 3, 4])
    
    ++++++++++++++++++++++
    # 设置获取节点特征
    hg.nodes['user'].data['h'] = torch.ones(5, 1)
    hg.nodes['user'].data['h']
    # tensor([[1.], [1.], [1.], [1.], [1.]])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    3 dgl.DGLGraph.edges

    见参考文献2

    dgl.DGLGraph.edata

    函数功能:

    • Return an edge data view for setting/getting edge features.(返回获取或者设置边的特征,下面是两种不同类型图的获取方式)

    • Let g be a DGLGraph. If g is a graph of a single edge type, g.edata[feat] returns the edge feature associated with the name feat.通过g.edata[feat] 返回一个样例。

    • If g is a graph of multiple edge types, g.edata[feat] returns a dict[str, Tensor] mapping canonical edge types to the edge features associated with the name feat for the corresponding type. 通过g.edata[feat] 返回一个字典。

    • Notes : For setting features, the device of the features must be the same as the device of the graph.

    举个例子

    import dgl
    import torch
    
    # Set and get feature ‘h’ for a graph of a single edge type.
    g = dgl.graph((torch.tensor([0, 1]), torch.tensor([1, 2])))
    g.edata['h'] = torch.ones(2, 1)
    g.edata['h']
    
    # Set and get feature ‘h’ for a graph of multiple edge types.
    g = dgl.heterograph({
        ('user', 'follows', 'user'): (torch.tensor([1, 2]), torch.tensor([3, 4])),
        ('user', 'plays', 'user'): (torch.tensor([2, 2]), torch.tensor([1, 1])),
        ('player', 'plays', 'game'): (torch.tensor([2, 2]), torch.tensor([1, 1]))
    })
    g.edata['h'] = {('user', 'follows', 'user'): torch.zeros(2, 1),
                    ('user', 'plays', 'user'): torch.ones(2, 1)}
    g.edata['h']
    # {('user', 'follows', 'user'): tensor([[0.], [0.]]),
    # ('user', 'plays', 'user'): tensor([[1.], [1.]])}
     
    g.edata['h'] = {('user', 'follows', 'user'): torch.ones(2, 1)}
    g.edata['h']
    
    # {('user', 'follows', 'user'): tensor([[1.], [1.]]),
    # ('user', 'plays', 'user'): tensor([[1.], [1.]])}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    3 参考文献

    [1]dgl.DGLGraph.node
    [2]dgl.DGLGraph.edges
    [3]dgl.DGLGraph.edata

  • 相关阅读:
    从零开始,无需公网IP,搭建本地电脑上的个人博客网站并发布到公网
    java燕理快递中转站系统设计与实现计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    德纳 Dana EDI 项目案例
    【IDEA】使用debug方式去运行java程序
    Go的方法(method)
    SpringBoot项目(百度AI整合)——如何在Springboot中使用文字识别OCR入门
    kux转mp4,实测有效,有图有真相
    @SpringBootApplication 注解报红
    Redis降低内存占用(二)分片结构
    XCTF1-web easyupload
  • 原文地址:https://blog.csdn.net/zfhsfdhdfajhsr/article/details/126479076
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号