DGL库之dgl.function.u_mul_e(代替dgl.function.src_mul_edge)
DGL库之dgl.function.u_mul_e
- 语法格式
- 例子
语法格式
dgl.function.u_mul_e代替了dgl.function.src_mul_edge
dgl.function.u_mul_e(lhs_field, rhs_field, out)
一个用于计算消息传递的内置函数,它通过对源节点(u)和边(e)的特征执行逐元素(element-wise)乘法操作来生成消息。如果源节点和边的特征形状相同,则直接进行逐元素乘法;如果形状不同,它会先广播特征到新的形状,然后再进行逐元素操作。(广播和NumPy规则一致)
参数说明:
- lhs_field (str):源节点 u 的特征字段名称。
- rhs_field (str):边 e 的特征字段名称。
- out (str):输出消息字段的名称。
例子
图结构如下:

import dgl
import torch
import dgl.function as fn# 创建图,节点和边
g = dgl.graph(([0, 1, 2], [1, 2, 0]))# 给边设置特征 'e_feat',确保它是浮动类型
g.edata['e_feat'] = torch.tensor([2000, 3000, 4000], dtype=torch.float32)# 给节点设置特征 'n_feat',确保它是浮动类型
g.ndata['n_feat'] = torch.tensor([20, 21, 22], dtype=torch.float32)# 使用 dgl.function.u_mul_e 计算消息(逐元素乘法)
g.apply_edges(fn.u_mul_e('n_feat', 'e_feat', 'msg'))# 查看计算出来的消息
print("消息(msg):")
print(g.edata['msg'])# 定义消息聚合函数:对消息求和
def reduce_sum(nodes):# torch.sum目的是将数据转成列表格式return {'n_feat': torch.sum(nodes.mailbox['msg'], dim=1)}# 使用 send_and_recv 发送消息,并在目标节点聚合
g.send_and_recv(g.edges(), fn.u_mul_e('n_feat', 'e_feat', 'msg'), reduce_sum)# 查看目标节点的特征(经过消息聚合更新后的节点特征)
print("目标节点更新后的特征(n_feat):")
print(g.ndata['n_feat'])
代码详解:
-
使用 dgl.function.u_mul_e 计算消息,在每条边上,使用 u_mul_e 函数计算消息,消息是节点特征和边特征的逐元素乘积。‘n_feat’ 是节点特征字段,‘e_feat’ 是边特征字段,计算结果存储在 msg 字段中,这表示每条边上生成的消息是:
- 节点0和边1的消息:20 * 2000 = 40000
- 节点1和边2的消息:21 * 3000 = 63000
- 节点2和边0的消息:22 * 4000 = 88000
-
reduce_sum 是一个聚合函数,将每个节点收到的消息赋值给节点特征 ‘n_feat’。
- 节点0 接收到的消息是来自边 (2, 0) 的消息 88000,所以节点0的聚合结果是:88000。
- 节点1 接收到的消息是来自边 (0, 1) 的消息 40000,所以节点1的聚合结果是:40000。
- 节点2 接收到的消息是来自边 (1, 2) 的消息 63000,所以节点2的聚合结果是:63000。
-
send_and_recv函数发送和接收消息,每个节点的特征通过其入边上的消息来更新。
- 节点0的更新值是来自边 (2, 0) 的消息 88000。
- 节点1的更新值是来自边 (0, 1) 的消息 40000。
- 节点2的更新值是来自边 (1, 2) 的消息 63000。
最终代码执行结果如下:

相关文章:
DGL库之dgl.function.u_mul_e(代替dgl.function.src_mul_edge)
DGL库之dgl.function.u_mul_e 语法格式例子 语法格式 dgl.function.u_mul_e代替了dgl.function.src_mul_edge dgl.function.u_mul_e(lhs_field, rhs_field, out)一个用于计算消息传递的内置函数,它通过对源节点(u)和边(e&#x…...
题目练习之二叉树那些事儿
♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ 知道了二叉树的结…...
数字马力二面面试总结
24.03.07数字马力二面面试总结 前段时间找工作,做的一些面试笔记总结 大家有面试录音或者记录的也可以发给我,我来整理答案呀 数字马力二面面试总结 24.03.07数字马力二面面试总结你可以挑一个你的最有挑战性的,有难度的,最具有复杂性的项目,可以简单说一下。有没有和算…...
优化图片大小的方法
不能起到优化图片大小的方法有(C) A.减少每个像素点能够显示的颜色 B.减少像素点 C.使用ajax加载 D.使用WebP格式 C. 使用Ajax加载 Ajax是一种用于在网页中异步加载数据的技术,与图片大小的优化关系不大。它主要用于提高网页的加载效率&…...
DevOps-课堂笔记
各种 aaS 类比于计算机网络的 OSI 参考模型,一个软件应用项目需要不同的支撑层,例如从下至上大概需要: 硬件层面的服务器针对硬件做弹性分配的虚拟化机制,例如虚拟机在虚拟化环境内运行的 OS支撑软件应用的中间件,例…...
Redis - Hash 哈希
一、基本认识 ⼏乎所有的主流编程语⾔都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数 组、映射。在Redis中,哈希类型是指值本⾝⼜是⼀个键值对结构,形如key"key",value{{ field1, v…...
dns服务部署
配置主文件,编辑主配置文件设置监听IP , 重启服务:[rootlocalhost ~]# systemctl restart network 安装bind 主服务器IP信息: [rootlocalhost ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses 129.168.160.131/24…...
【Hadoop和Hbase集群配置】3台虚拟机、jdk+hadoop+hbase下载和安装、环境配置和集群测试
目录 一、环境 二、虚拟机配置 三、 JDK、Hadoop、HBase的安装和配置 【安装和配置JDK】 【安装和配置Hadoop】 【安装和配置Hbase】 四、 Hadoop和HBase集群测试 【Hadoop启动测试】 【Hbase启动测试】 一、环境 OS: CentOS-7 JDK: v1.8.0_131 Hadoop: v2.7.6 Hb…...
超萌!HTMLCSS:超萌卡通熊猫头
效果演示 创建了一个卡通风格的熊猫头 HTML <div class"box"><div class"head"><div class"head-copy"></div><div class"ears-left"></div><div class"ears-right"></di…...
人脑与机器连接:神经科技的伦理边界探讨
内容概要 在当今科技飞速发展的时代,人脑与机器连接已成为一个引人注目的前沿领域。在这一背景下,神经科技的探索为我们打开了一个全新的世界,从脑机接口到人工智能的飞跃应用,不仅加速了技术的进步,更触动了我们内心…...
Mac M1 Docker创建Rocketmq集群并接入Springboot项目
文章目录 前言Docker创建rocketmq集群创建rocketmq目录创建docker-compose.yml新增broker.conf文件启动容器 Springboot 接入 rocketmq配置maven依赖修改appplication.yml新增消息生产者新增消费者测试发送消息 总结 前言 最近公司给配置了一台mac,正好有时间给装一…...
k8s 查看cpu使用率最高的pod
在 Kubernetes 中,可以使用 kubectl top 命令查看 Pod 的资源使用情况,从而找到 CPU 使用率最高的 Pod。 步骤 使用 kubectl top pods 查看所有 Pod 的 CPU 使用情况 运行以下命令查看集群中所有 Pod 的 CPU 和内存使用情况: kubectl top po…...
jenkins 构建报错 Cannot run program “sh”
原因 在 windows 操作系统 jenkins 自动化部署的时候, 由于自动化构建的命令是 shell 执行的,而默认windows 从 path 路径拿到的 shell 没有 sh.exe ,因此报错。 解决方法 前提是已经安装过 git WINR 输入cmd 打开命令行, 然后输入where git 获取 git 的路径, …...
Netty ByteBuf 分配 | 池化复用 、直接内存
Netty ByteBuf 分配 本文主要内容关于 ByteBuf 分配介绍,为了更好的理解本文,我们可以带着几个问题思考 在IO密集型业务场景下,可能涉及大量ByteBuf分配,这时我们需 要考虑会不会产生OOM会不会出现频繁GC会不会内存泄露 根据上…...
【数据结构】堆和二叉树(2)
文章目录 前言一、建堆和堆排序1.堆排序 二、二叉树链式结构的实现1.二叉树的遍历 三、链式二叉树的功能函数1.二叉树结点个数2.二叉树叶子结点个数3.二叉树的高度4.二叉树第k层结点个数5. 二叉树查找值为x的结点6.二叉树销毁 总结 前言 接着上一篇博客,我们继续分…...
Oracle分区技术特性
Oracle 的分区是一种“分而治之”的技术,通过将大表、索引分成可以独立管理的、小的 Segment,从而避免了对每个对象作为一个大的、单独的 Segment 进行管理,为海量数据访问提供了可伸缩的性能。自从 Oracle 引入分区技术以来,Orac…...
Hive操作库、操作表及数据仓库的简单介绍
数据仓库和数据库 数据库和数仓区别 数据库与数据仓库的区别实际讲的是OLTP与OLAP的区别 操作型处理(数据库),叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向用户交易的处理系统,它是针对具体业务…...
智能网联汽车:人工智能与汽车行业的深度融合
内容概要 在这个快速发展的时代,智能网联汽车已经不再是科幻电影的专利,它正在悄然走进我们的日常生活。如今,人工智能(AI)技术与汽车行业的结合犹如一场科技盛宴,让我们看到了未来出行的新方向。通过自动…...
VUE 循环的使用方法集锦
vue---循环方式以及跳出循环 在做VUE项目开发过程中,数据循环是常见的操作方式,以下是几种常见的数据循环方式: 一、for循环 let data [1,2,3,4,5,6,7,8,9,10]; for(let i0; i<data.length; i){console.log(data[i]);if(i>5){break;…...
Centos部署资料
1. 离线rpm 1.1 下载地址: 阿里云rpmfind 1.2 本地安装: [rootlocalhost ~]# yum localinstall unzip-6.0-21.el7.x86_64.rpm2. 服务器操作 2.1 修改网络ip [rootlocalhost ~]# cd /etc/sysconfig/network-scripts/ [rootlocalhost network-script…...
HAMi:面向云原生AI基础设施的异构计算统一管理平台
HAMi:面向云原生AI基础设施的异构计算统一管理平台 【免费下载链接】HAMi Heterogeneous GPU Sharing on Kubernetes 项目地址: https://gitcode.com/GitHub_Trending/ha/HAMi 随着AI工作负载在Kubernetes集群中的大规模部署,异构计算资源管理已成…...
AutoLegalityMod:如何在15分钟内创建完全合法的宝可梦数据
AutoLegalityMod:如何在15分钟内创建完全合法的宝可梦数据 【免费下载链接】PKHeX-Plugins Plugins for PKHeX 项目地址: https://gitcode.com/gh_mirrors/pk/PKHeX-Plugins 从数据混乱到精准合规的技术实现 每个宝可梦训练师都曾面临这样的困境:…...
本地部署DeepSeek-V2.5遇到OOM?3类内存泄漏场景,90%开发者第2步就踩雷!
更多请点击: https://codechina.net 第一章:本地部署DeepSeek-V2.5的内存风险全景认知 本地部署DeepSeek-V2.5模型时,内存资源消耗远超常规LLM推理场景,其核心风险源于模型结构设计、量化策略兼容性及运行时上下文管理三重叠加效…...
保姆级教程✅ 从零学InVEST/SolVES模型,附QGIS/PostgreSQL/R语言实操+数据预处理全流程
本内容将讲述用于评估生态系统服务价值的当量因子法、InVEST模型、SolVES模型及其原理,通过本课程的学习,您将学会三种模型的原理与运行方法:如何获取与制备模型数据;如何进行当量因子转换;如何利用InVEST模型进行生态…...
球形氧化镁—电子材料的导热秘方!
从消费电子到新能源汽车,从5G基站到航空航天器件,每一款高性能电子产品的稳定运行,都离不开核心导热材料。当传统导热材料难以平衡导热效率、绝缘性能与成本控制时,球形氧化镁凭借其独特的结构优势与卓越性能,成为破解…...
如何永久免费激活Windows和Office?KMS_VL_ALL_AIO智能激活脚本完整指南
如何永久免费激活Windows和Office?KMS_VL_ALL_AIO智能激活脚本完整指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows激活弹窗烦恼吗?是否遇到过Office突…...
书匠策AI拆解手册:它是怎么帮你把毕业论文从0拉到1的?
同学们好,我是你们的论文科普老司机。 今天不整虚的,直接拿一个工具开刀——书匠策AI( 官网直达:www.shujiangce.com,微信搜一搜"书匠策AI"即可关注公众号)。 这篇文章的目的只有一个ÿ…...
WorkshopDL神器秘籍:零门槛解锁Steam创意工坊的终极跨平台方案
WorkshopDL神器秘籍:零门槛解锁Steam创意工坊的终极跨平台方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是不是曾经在Epic商店买了《盖瑞的模组》ÿ…...
如何在浏览器中零安装查看SQLite数据库?完全指南
如何在浏览器中零安装查看SQLite数据库?完全指南 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer 你是否曾遇到过这样的情况:收到一个SQLite数据库文件需要快速查看…...
如何用AI生成高性能无机材料?MatterGen让材料设计革命化
如何用AI生成高性能无机材料?MatterGen让材料设计革命化 【免费下载链接】mattergen Official implementation of MatterGen -- a generative model for inorganic materials design across the periodic table that can be fine-tuned to steer the generation tow…...
