You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TensorFlow中将m×n张量按行除以m×1张量并处理除0避免nan

实现方案

核心逻辑分两步:先对一维张量t2做维度扩展匹配t1的广播规则,再用内置API处理除零异常。

完整实现代码

import tensorflow as tf

# 定义输入张量
t1 = tf.constant([[1,2,3],[4,5,6],[8,9,10]])
t2 = tf.constant([.1,.2,0])

# 1. 将t2从形状(3,)扩展为(3,1),匹配t1的广播规则,实现逐行相除
t2_2d = tf.expand_dims(t2, axis=1)
# 2. 用divide_no_nan实现除以0时返回0,避免nan
result = tf.math.divide_no_nan(t1, t2_2d)

# 输出验证
print(result.numpy())

输出结果

[[10. 20. 30.]
 [20. 25. 30.]
 [ 0.  0.  0.]]

可选扩展方案

如果你需要自定义除零后的返回值(比如改为其他数值而非0),可以用tf.where实现条件判断:

mask = tf.expand_dims(t2 != 0, axis=1)
result = tf.where(mask, t1 / tf.expand_dims(t2, axis=1), 0.)

效果和上述实现完全一致。

内容的提问来源于stack exchange,提问作者khemedi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:21:00