拱墅区哪里有网站建设wordpress添加单页
2026/1/15 2:39:17 网站建设 项目流程
拱墅区哪里有网站建设,wordpress添加单页,关于春节的网站设计html,大作设计网站官网登录入口零基础吃透#xff1a;RaggedTensor的重载运算符 核心本质 RaggedTensor 类重载了Python标准的算术/比较运算符#xff08;如、-、*、等#xff09;#xff0c;底层自动调用TensorFlow的逐元素算子#xff08;如tf.add、tf.equal#xff09;#xff0c;让你可以像操作普…零基础吃透RaggedTensor的重载运算符核心本质RaggedTensor 类重载了Python标准的算术/比较运算符如、-、*、等底层自动调用TensorFlow的逐元素算子如tf.add、tf.equal让你可以像操作普通tf.Tensor一样对RaggedTensor做数学运算且运算结果仍保留RaggedTensor的可变长度结构无需转密集张量、无冗余补0。简单说RaggedTensor的运算符用法 ≈ 普通Tensor的用法唯一区别是“长度可变的结构会被保留”。场景1同形状逐元素运算核心规则当两个RaggedTensor形状完全匹配外层维度数相同且对应行的长度一致重载运算符会执行逐元素计算每个位置的元素两两运算。代码示例解析importtensorflowastf# 定义两个形状匹配的RaggedTensorxtf.ragged.constant([[1,2],[3],[4,5,6]])# 形状[3, None]行长度2、1、3ytf.ragged.constant([[1,1],[2],[3,3,3]])# 形状[3, None]行长度2、1、3和x完全匹配# 重载运算符逐元素相加print(x y ,xy)# 重载*运算符逐元素相乘print(x * y ,x*y)# 重载运算符逐元素比较返回布尔型RaggedTensorprint(x y ,xy)运行结果x y tf.RaggedTensor [[2, 3], [5], [7, 8, 9]] x * y tf.RaggedTensor [[1, 2], [6], [12, 15, 18]] x y tf.RaggedTensor [[True, False], [False], [False, False, False]]关键解读逐元素运算逻辑和普通Tensor完全一致第一行[1,2] [1,1] → [2,3]、[1,2] * [1,1] → [1,2]第二行[3] [2] → [5]、[3] * [2] → [6]第三行[4,5,6] [3,3,3] → [7,8,9]。运算结果仍为RaggedTensor保留原始行长度结构无补0。场景2广播运算标量/可广播形状核心规则和普通Tensor的广播规则一致标量可以和任意形状的RaggedTensor广播标量扩展为和RaggedTensor相同的形状再逐元素运算更复杂的广播需满足“RaggedTensor的形状可广播”如[3, None]和[3, 1]。子场景1标量与RaggedTensor广播最常用xtf.ragged.constant([[1,2],[3],[4,5,6]])# 标量RaggedTensor每个元素加3print(x 3 ,x3)# 标量*RaggedTensor每个元素乘2print(x * 2 ,x*2)# 标量比较每个元素和3比较print(x 3 ,x3)运行结果x 3 tf.RaggedTensor [[4, 5], [6], [7, 8, 9]] x * 2 tf.RaggedTensor [[2, 4], [6], [8, 10, 12]] x 3 tf.RaggedTensor [[False, False], [False], [True, True, True]]子场景2简单形状广播扩展若RaggedTensor和另一个“可广播的Tensor/RaggedTensor”运算也遵循广播规则xtf.ragged.constant([[1,2],[3],[4,5,6]])# 形状[3, None]ytf.constant([10,20,30])# 形状[3]可广播到[3, None]print(x y ,xy)# 每行的所有元素 对应行的标量运行结果x y tf.RaggedTensor [[11, 12], [23], [34, 35, 36]]解读y的[10,20,30]广播到每行第一行元素10第二行20第三行30。支持的重载运算符列表RaggedTensor重载了和普通Tensor完全相同的运算符分两类1. 一元运算符单输入运算符作用示例x为RaggedTensor-逐元素取反-x→[[-1,-2], [-3], [-4,-5,-6]]~逐元素按位取反整数~x→ 按位取反每个元素abs()逐元素取绝对值abs(tf.ragged.constant([[-1,2], [-3]]))→[[1,2], [3]]2. 二进制运算符双输入运算符作用适用类型逐元素加法数值型-逐元素减法数值型*逐元素乘法数值型/逐元素浮点除法数值型//逐元素整数除法整数型%逐元素取模整数型**逐元素幂运算数值型逐元素按位与整数/布尔型逐元素按位或^逐元素按位异或整数/布尔型逐元素等于比较所有类型逐元素小于比较数值/字符串型逐元素小于等于比较数值/字符串型逐元素大于比较数值/字符串型逐元素大于等于比较数值/字符串型关键注意事项避坑形状匹配要求二进制运算的两个输入必须“可广播”同形状或符合广播规则否则报错。❌ 错误示例行长度不匹配且不可广播xtf.ragged.constant([[1,2],[3]])# 行长度2、1ytf.ragged.constant([[1],[2,3]])# 行长度1、2无法广播print(xy)# 抛出ValueErrorRow lengths do not match运算结果类型所有重载运算符的结果仍为RaggedTensor除非广播后变成标量保留原始行结构不会自动转密集张量。数据类型兼容运算的两个输入需数据类型兼容如int32和float32可运算结果为float32int32和string不可运算。空行处理若RaggedTensor包含空行[]运算后仍为空行无报错xtf.ragged.constant([[],[1,2]])print(x5)# tf.RaggedTensor [[], [6,7]]核心总结RaggedTensor的重载运算符是“语法糖”底层调用TF原生逐元素算子核心优势用法和普通Tensor完全一致学习成本低保留RaggedTensor的可变长度结构无冗余补0计算效率高支持广播规则覆盖绝大多数基础数学/比较场景。简单记只要普通Tensor能做的运算符操作RaggedTensor都能做且结果保持行长度不变。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询