pytorch api文档:torch.set_printoptions()定义张量打印格式 作者:马育民 • 2026-01-24 08:54 • 阅读:10001 # 介绍 `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'` 会显示完整张量,不截断 | # 例子 ```python 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 原生的默认打印格式,只需调用无参数的函数: ```python 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”的张量时,关闭科学计数法+调整精度能让数值更易读,是最实用的配置组合。 原文出处:http://malaoshi.top/show_1GW2eJREe61Z.html