pytorch api文档:torch.set_printoptions()定义张量打印格式

介绍

torch.set_printoptions(),这个函数是 PyTorch 中用于自定义张量(Tensor)打印格式 的核心工具,能帮你控制张量打印时的精度、显示长度、格式等,让输出更符合阅读或调试需求。

作用

PyTorch 张量 默认打印格式:可能存在精度不足、数值显示不直观(如科学计数法)、长张量被截断等问题。

该函数用于全局设置 PyTorch 张量的打印规则,设置后整个程序中所有张量的打印输出都会遵循这些规则,直到你重新修改或重启解释器。

语法

torch.set_printoptions()
`

常用参数

参数名 作用 示例/默认值
precision 控制打印的小数位数 默认4位,如 precision=2 会显示两位小数
sci_mode 是否启用科学计数法 默认True(自动启用),False强制关闭
threshold 张量元素数量阈值,超过则截断显示 默认1000,如threshold=5,超过5个元素会用...省略
edgeitems 截断时,开头/结尾显示的元素数 默认3,如长张量会显示前3+后3个元素
linewidth 每行打印的字符数,超过则换行 默认80,可调整避免一行过长
profile 快速套用预设配置(’default’/‘short’/‘full’) profile='full' 会显示完整张量,不截断

例子

import torch

# 1. 生成测试张量
# 生成10个均值0、方差1的标准正态分布张量
tensor = torch.randn(10)
print("默认打印格式:")
print(tensor)
print("-" * 50)

# 2. 自定义打印配置:关闭科学计数法+保留2位小数+显示完整张量
torch.set_printoptions(
    precision=2,        # 保留2位小数
    sci_mode=False,     # 关闭科学计数法
    threshold=float('inf'),  # 不截断(显示所有元素)
    linewidth=100       # 每行字符数放宽,避免换行
)
print("自定义格式后:")
print(tensor)
print("-" * 50)

# 3. 测试长张量的截断控制
long_tensor = torch.randn(20)  # 20个元素的张量
# 恢复默认配置,再设置截断参数
torch.set_printoptions(threshold=5, edgeitems=2)  # 阈值5,只显示前2+后2个元素
print("长张量截断显示:")
print(long_tensor)
print("-" * 50)

# 4. 快速套用预设配置(full显示完整张量)
torch.set_printoptions(profile='full', sci_mode=False)
print("预设full配置(显示完整长张量):")
print(long_tensor)

输出结果(参考):

默认打印格式:
tensor([ 0.4567, -1.2345,  0.7890, -0.1234,  0.9876, -0.5432,  0.3210, -0.8765,
         0.6543, -0.4321])
--------------------------------------------------
自定义格式后:
tensor([ 0.46, -1.23,  0.79, -0.12,  0.99, -0.54,  0.32, -0.88,  0.65, -0.43])
--------------------------------------------------
长张量截断显示:
tensor([ 0.12,  0.34,  ..., -0.78, -0.90])
--------------------------------------------------
预设full配置(显示完整长张量):
tensor([ 0.12,  0.34,  0.56, -0.78, -0.90,  0.23, -0.45,  0.67, -0.89,  0.10, -0.32,  0.54, -0.76,  0.98, -0.11,  0.33, -0.55,  0.77, -0.99,  0.22])

恢复默认配置

如果想重置为 PyTorch 原生的默认打印格式,只需调用无参数的函数:

torch.set_printoptions()  # 恢复所有参数为默认值

使用场景

  1. 直观验证数值是否符合预期:用 precision 控制小数位数,sci_mode=False 关闭科学计数法,能直观验证数值是否符合预期;
  2. 查看长张量完整内容:设置 threshold=float('inf') 或 profile='full',避免关键元素被截断;
  3. 统一输出格式:在项目开头设置一次,确保所有张量打印格式一致,便于阅读和对比。

总结

  1. torch.set_printoptions() 是全局控制张量打印格式的工具,核心解决“显示精度、科学计数法、张量截断”问题;
  2. 常用组合:precision(小数位数)+ sci_mode=False(关闭科学计数法)+ threshold(控制截断);
  3. 调试“均值0、方差1”的张量时,关闭科学计数法+调整精度能让数值更易读,是最实用的配置组合。

原文出处:/show_1GW2eJREe61Z.html