TensorFlow 2.6如何关闭打印时的科学计数法?
在TensorFlow 2.6中关闭张量打印的科学计数法
TensorFlow 2.x本身没有提供专门的全局配置开关来关闭张量打印时的科学计数法,但可以通过以下两种方式实现需求:
方法1:借助numpy打印配置全局生效
TensorFlow的张量字符串输出逻辑依赖numpy的打印设置,只需配置numpy的打印选项,直接打印张量即可得到非科学计数法的输出:
import os os.environ["TF_CPP_MIN_LOG_LEVEL"] = "1" import tensorflow as tf import numpy as np # 关闭科学计数法,指定精度保留4位小数 np.set_printoptions(suppress=True, precision=4) x = tf.constant([0.0001, 0.0002, 0.0003], dtype=tf.float32) print(x)
执行后输出:
tf.Tensor([0.0001 0.0002 0.0003], shape=(3,), dtype=float32)
如果需要让数值用逗号分隔,可以额外添加格式化器:
np.set_printoptions(suppress=True, precision=4, formatter={'float': '{:,.4f}'.format})
注意这会全局影响所有numpy相关的打印输出。
方法2:自定义打印函数实现精准格式
如果不想修改全局配置,可以自定义函数来生成完全符合预期格式的输出:
import os os.environ["TF_CPP_MIN_LOG_LEVEL"] = "1" import tensorflow as tf def print_tensor(tensor): # 逐个格式化张量元素为4位小数,并用逗号拼接 formatted_values = ", ".join([f"{val:.4f}" for val in tensor.numpy()]) # 拼接成TensorFlow风格的输出字符串 print(f"tf.Tensor([{formatted_values}], shape={tensor.shape}, dtype={tensor.dtype.name})") x = tf.constant([0.0001, 0.0002, 0.0003], dtype=tf.float32) print_tensor(x)
执行后输出:
tf.Tensor([0.0001, 0.0002, 0.0003], shape=(3,), dtype=float32)
内容的提问来源于stack exchange,提问作者cdahms
相关产品推荐
相关产品推荐

