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

为何tf.math.exp有时返回float64格式而非float32?

问题原因解析

两种场景的 dtype 差异原因

场景1:tf.math.exp(2.0/20.0) 返回 float32

2.0/20.0 是 Python 原生的 float(对应 float64),但 TensorFlow 处理 Python 数值输入时,会默认使用全局默认浮点类型(通常是 float32,可通过 tf.keras.backend.floatx() 查看)进行转换,所以最终运算和输出的张量都是 float32 类型。

场景2:tf.math.exp(y[i]/20) 返回 float64

  • 首先,y[i] 是 numpy 的 float32 标量,20 是 Python 原生 int(对应 numpy 的 int64 类型)。根据 numpy 的类型提升规则,不同精度的数值类型运算时会自动提升到更高精度的类型,这里 float32 和 int64 运算后得到的是 float64 类型的 numpy 标量。
  • 当这个 float64 的 numpy 标量传入 tf.math.exp 时,TensorFlow 会保留输入的原始类型,不会自动转换为默认的 float32,因此输出张量为 float64 类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 22:02:50