【DGL系列】DGLGraph.out_edges简介
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]
如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~
目录
函数说明
用法示例
示例 1: 获取所有边的源节点和目标节点
示例 2: 获取特定节点的出边
示例 3: 获取所有边的边ID
示例 4: 获取所有信息(源节点、目标节点和边ID)
示例 5: 对于有多种边缘类型的图形,需要在查询中指定边的类型
示例 6:对于无向图,则边是双向的
dgl.DGLGraph.out_edges — DGL 2.3 documentation
函数说明
dgl.DGLGraph.out_edges
是 DGL(Deep Graph Library)中的一个方法,用于获取图中所有边的源节点和目标节点。这个方法可以用于返回整个图的边,也可以通过传入指定的节点来获取从这些节点出发的边。
DGLGraph.out_edges(u=ALL, etype=None, form='uv')
参数
-
u
(节点ID):- 可以是 单个节点ID(整数)。
- 可以是 节点ID的张量(Int Tensor),每个元素是一个节点ID。张量的设备类型和ID数据类型必须与图的相同。
- 可以是 可迭代的节点ID列表(iterable[int]),每个元素是一个节点ID。
-
form
(字符串,可选):'eid'
: 返回1D张量,表示所有边的ID。'uv'
(默认): 返回一个2元组(1D张量),分别表示所有边的源节点和目标节点。'all'
: 返回一个3元组(1D张量),分别表示所有边的源节点、目标节点和边ID。
-
etype
(字符串或(字符串, 字符串, 字符串),可选):- 边的类型名称。格式可以是 (源节点类型, 边类型, 目标节点类型)。
- 或者是一个唯一标识三元组格式的字符串类型名称。如果图中只有一种类型的边,可以省略。
返回值
- 返回所有指定类型节点的出边。返回形式取决于
form
参数的值。'eid'
: 返回一个1D张量,表示所有边的ID。'uv'
: 返回一个2元组(1D张量),分别表示所有边的源节点和目标节点。'all'
: 返回一个3元组(1D张量),分别表示所有边的源节点、目标节点和边ID。
用法示例
我们创建一个如图所示的简单的graph:
示例 1: 获取所有边的源节点和目标节点
import dgl
import torch# 创建一个简单的图,包含4个节点和4条边
u = torch.tensor([0, 0, 1, 2])
v = torch.tensor([1, 2, 3, 3])
graph = dgl.graph((u, v))# 获取所有边的源节点和目标节点
src, dst = graph.out_edges(graph.nodes())print("源节点:", src)
print("目标节点:", dst)# 源节点: tensor([0, 0, 1, 2])
# 目标节点: tensor([1, 2, 3, 3])
示例 2: 获取特定节点的出边
# 获取节点0和节点1的出边
nodes = torch.tensor([0, 1])
src, dst = graph.out_edges(nodes)print("源节点:", src)
print("目标节点:", dst)# 源节点: tensor([0, 0, 1])
# 目标节点: tensor([1, 2, 3])
示例 3: 获取所有边的边ID
# 获取所有边的边ID
edge_ids = graph.out_edges(graph.nodes(), form='eid')print("边ID:", edge_ids)# 边ID: tensor([0, 1, 2, 3])
示例 4: 获取所有信息(源节点、目标节点和边ID)
# 获取所有边的源节点、目标节点和边ID
src, dst, eid = graph.out_edges(graph.nodes(), form='all')print("源节点:", src)
print("目标节点:", dst)
print("边ID:", eid)# 源节点: tensor([0, 0, 1, 2])
# 目标节点: tensor([1, 2, 3, 3])
# 边ID: tensor([0, 1, 2, 3])
示例 5: 对于有多种边缘类型的图形,需要在查询中指定边的类型
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]))
})
hg.out_edges(torch.tensor([1, 2]), etype='follows')# (tensor([1]), tensor([2]))
示例 6:对于无向图,则边是双向的
注意:在dgl的图中,所有边都是有向的,如果要创建无向图,需要创建双向边。
import dgl
import torch# 创建一个无向图,包含4个节点和4条边
u = torch.tensor([0, 0, 1, 2])
v = torch.tensor([1, 2, 3, 3])# 创建双向边以模拟无向图
u_bi = torch.cat([u, v])
v_bi = torch.cat([v, u])graph = dgl.graph((u_bi, v_bi))
# 简化图
graph = dgl.to_simple(graph)# 获取节点的出边
src, dst = graph.out_edges([1, 3])print("源节点:", src)
print("目标节点:", dst)# 源节点: tensor([1, 1, 3, 3])
# 目标节点: tensor([3, 0, 1, 2])
相关文章:

【DGL系列】DGLGraph.out_edges简介
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 函数说明 用法示例 示例 1: 获取所有边的源节点和目标节点 示例 2: 获取特定节点的出边 示例 3: 获取所有边的边ID 示例 4: 获取所有信息&a…...

掌握品质之钥:ISO9001质量管理体系认证的巨大价值
在当今竞争激烈的市场环境中,企业若要脱颖而出并持续成功,就必须确保其产品和服务质量始终如一。ISO9001质量管理体系认证正是帮助企业实现这一目标的关键工具。本文将深入探讨ISO9001认证的巨大价值以及它如何助力企业提升竞争力、优化内部管理并赢得客…...

网络开局 与 Underlay网络自动化
由于出口和核心设备 部署在核心机房,地理位置集中,业务复杂,开局通常需要网络工程师进站调测。 因此核心层及核心以上的设备(包含核心层设备,旁挂独立AC设备和出口设备)推荐采用WEB网管开局方式或命令行开局方式。 核心以下的设备(包含汇聚层设备、接入层设备和AP)由于数量众…...

MySQL MVCC原理
全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。 1、版本链 对于使用InnoDB存储引擎的表来说,它的聚簇索引记录中都包含两个必要的隐藏列: 1、trx_id:每次一个事务对某条…...
编织文字的魔法:探索WebKit的CSS文本效果
编织文字的魔法:探索WebKit的CSS文本效果 在现代网页设计中,文本不仅仅是信息的载体,更是视觉表现的重要元素。WebKit,作为众多浏览器的核心引擎,支持一系列CSS文本效果,使开发者能够创造出引人注目的文本…...

如何在Linux上部署Ruby on Rails应用程序
在Linux上部署Ruby on Rails应用程序是一个相对复杂的过程,需要按照一系列步骤进行。下面是一个基本的部署过程,涵盖了从安装所需软件到部署应用程序的所有步骤。 安装必要的软件 在部署Ruby on Rails应用程序之前,需要确保Linux系统上安装了…...
极狐GitLab 如何管理 PostgreSQL 扩展?
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channelcontent&utm_sourcecsdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署…...
SpringBoot如何使用Kafka来优化接口请求的并发
在Spring Boot中使用 Kafka 来优化接口请求的并发,主要是通过将耗时的任务异步化到Kafka消息队列中来实现。这样,接口可以立即响应客户端,而不需要等待耗时任务完成。 在Spring Boot应用程序中调用Kafka通常涉及使用Spring Kafka库ÿ…...

全面了解不同GPU算力型号的价格!
这两年人工智能(AI)、机器学习(ML)、深度学习和高性能计算(HPC)领域的快速发展,GPU算力已成为不可或缺的资源。企业、研究机构乃至个人开发者越来越依赖于GPU加速计算来处理大规模数据集和复杂模…...

Linux网络编程之UDP
文章目录 Linux网络编程之UDP1、端口号2、端口号和进程ID的区别3、重新认识网络通讯过程4、UDP协议的简单认识5、网络字节序6、socket编程接口6.1、socket常见接口6.2、sockaddr通用地址结构 7、简单的UDP网络程序7.1、服务器响应程序7.2、服务器执行命令行7.3、服务器英语单词…...

graham 算法计算平面投影点集的凸包
文章目录 向量的内积(点乘)、外积(叉乘)确定旋转方向numpy 的 cross 和 outernp.inner 向量与矩阵计算示例np.outer 向量与矩阵计算示例 python 示例生成样例散点数据图显示按极角排序的结果根据排序点计算向量转向并连成凸包 基本…...

【海外云手机】静态住宅IP集成解决方案
航海大背景下,企业和个人用户对于网络隐私、稳定性以及跨国业务的需求日益增加。静态住宅IP与海外云手机的结合,提供了一种创新的集成解决方案,能够有效应对这些需求。 本篇文章分为三个部分;静态住宅优势、云手机优势、集成解决…...

最新!CSSCI(2023-2024)期刊目录公布!
【SciencePub学术】据鲁迅美术学院7月16日消息,近日,南京大学中国社会科学研究评价中心公布了中文社会科学引文索引(CSSCI)(2023—2024)数据库最新入选目录。 C刊一般指CSSCI来源期刊,即南大核心…...

C语言 | Leetcode C语言题解之第237题删除链表中的节点
题目: 题解: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/void deleteNode(struct ListNode* node) {struct ListNode * p node->next;int temp;temp node->val;node->val…...
linux LED代码设计
设计目标: 写RGB LED灭、亮、闪烁等效果,不同颜色也需要设置 #include <iostream> #include <unistd.h> // 对于usleep() #include <fcntl.h> // 对于open(), close() #include <sys/ioctl.h> // 对于ioctl() #include <li…...

Jvm基础(一)
目录 JVM是什么运行时数据区域线程私有1.程序计数器2.虚拟机栈3.本地方法栈 线程共享1.方法区2.堆 二、对象创建1.给对象分配空间(1)指针碰撞(2)空闲列表 2.对象的内存布局对象的组成Mark Word类型指针实例数据:对齐填充 对象的访问定位句柄法 三、垃圾收集器和内存…...

深入理解FFmpeg--软/硬件解码流程
FFmpeg是一款强大的多媒体处理工具,支持软件和硬件解码。软件解码利用CPU执行解码过程,适用于各种平台,但可能对性能要求较高。硬件解码则利用GPU或其他专用硬件加速解码,能显著降低CPU负载,提升解码效率和能效。FFmpe…...

新的铸造厂通过 PROFIBUS 技术实现完全自动化
钢铁生产商某钢以其在厚钢板类别中极高的产品质量而闻名。其原材料(板坯连铸机)在钢铁厂本地生产,该厂最近新建了一座垂直连铸厂。该项目的一个主要目标是从一开始就完全自动化这座新工厂和整个铸造过程,以高成本效率实现最佳产品…...

【UE5.1】NPC人工智能——04 NPC巡逻
效果 步骤 一、准备行为树和黑板 1. 对我们之前创建的AI控制器创建一个子蓝图类 这里命名为“BP_NPC_AIController_Lion”,表示专门用于控制狮子的AI控制器 2. 打开狮子蓝图“Character_Lion” 在类默认值中将“AI控制器类”修改为“BP_NPC_AIController_Lion” 3…...
计算机视觉主流框架及其应用方向
文章目录 前言一、计算机视觉领域的主要框架1、深度学习框架1.1、TensorFlow1.2、PyTorch 2、神经网络模型2.1、卷积神经网络(CNN)2.2、循环神经网络(RNN) 二、框架在计算机视觉任务中的应用1、TensorFlow1.1、概述:1.…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...