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

TensorFlow打印输出异常求助:无法获取计算结果值

解决TensorFlow只输出张量信息而非计算结果的问题

嘿,我明白你碰到的问题啦!你现在用的是TensorFlow 1.x的图模式,这种模式下代码分为两个阶段:构建计算图和执行计算图。你目前只完成了第一步——定义了所有的常量和运算节点,但并没有真正触发计算,所以打印addn的时候,输出的只是这个张量的元信息(名称、形状、数据类型),而不是计算后的数值。

解决方法(TensorFlow 1.x风格)

你需要创建一个会话(tf.Session)来执行计算图里的运算,修改后的代码如下:

import tensorflow as tf
# Immutable constants
a = tf.constant(6,name='constant_a')
b = tf.constant(3,name='contant_b')
c = tf.constant(10,name='contant_c')
d = tf.constant(5,name='contant_d')
mul = tf.multiply(a,b,name='mul')
div = tf.div(c,d,name="div")
# Output of the multiplication what needs to be added
addn = tf.add_n([mul,div],name="addn")

# 新增会话执行部分
with tf.Session() as sess:
    # 运行addn节点,触发所有依赖的计算
    result = sess.run(addn)
    print(result)

运行这段代码后,你就能得到20这个预期的计算结果啦——因为6*3 + 10/5 = 18 + 2 = 20。

如果你用的是TensorFlow 2.x

TF2默认启用即时执行模式(Eager Execution),不需要手动创建会话,直接调用张量的.numpy()方法就能获取数值:

import tensorflow as tf
# TF2默认是Eager模式,不需要额外配置
a = tf.constant(6,name='constant_a')
b = tf.constant(3,name='contant_b')
c = tf.constant(10,name='contant_c')
d = tf.constant(5,name='contant_d')
mul = tf.multiply(a,b,name='mul')
div = tf.div(c,d,name="div")
addn = tf.add_n([mul,div],name="addn")

# 直接获取并打印数值
print(addn.numpy())

简单来说,核心问题就是你只画好了计算的“流程图”,但还没让这个流程图真正跑起来~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:31:23