unsupported format string passed to torch.FloatTensor.__format__:整张量设打印精度,单值用 item

简介: PyTorch中不能直接用`{:.10f}`格式化多维Tensor,会报`TypeError`。未初始化Tensor含随机内存值,非有效数值;需先赋值,再通过`.item()`取单值格式化,或用`torch.set_printoptions()`统一控制显示精度。打印位数≠真实精度。

原帖想把 3×3 Tensor 用 {:.10f} 当成一个 Python 数值格式化:

TypeError: unsupported format string passed to torch.FloatTensor.__format__

打印位数不能补出原本没有的精度

原题 FloatTensor(3,3) 分配未初始化数据,又希望显示更多小数。先给张量明确数值,再选择整表打印或单值格式。未初始化内存里的极小值与极大值不能被当作某次计算结果来解释。

一个格式串不能直接把多元素张量当成单个浮点数。还需区分“显示更多位”与“提高已存数据的精度”。

下面用有定义数值的张量检查类型与尺寸:

import torch
a = torch.tensor([[0.1, 1.0 / 3], [2.5, -0.25]], dtype=torch.float32)
print("josh050608")
print("tensor:", a.shape, a.dtype, "elements:", a.numel())
torch.set_printoptions(precision=10, sci_mode=False)
print(a)
print(f"single value: {a[0, 0].item():.10f}")

整张量使用 torch.set_printoptions 调整展示;一个已确认单元素的张量用 .item() 取 Python 数值后再格式化。若需按行输出固定格式,可遍历 a.detach().cpu().tolist() 中的数值。

原帖 torch.FloatTensor(3,3) 创建的是未初始化存储,其中显示的极小值或极大值并不是有效计算结果。需要全零时用 torch.zeros(3,3);需要自己的数据时用明确的 tensor 构造。不要通过提高打印位数解读未初始化内存。

float32 本身精度有限,打印十位小数不会增加真实精度。如果计算确实需要 float64,应在数据与运算开始前选择它,并同步调整模型;把已损失精度的结果最后转 double 不能恢复信息。

验证所打印的是正确元素,且展示格式符合用途。单值 .item() 适合日志,不参与可微训练路径。

固定格式输出与 dtype 的完整对照

下面使用有定义的数值,按行输出固定十位小数,并比较从起点采用 float64 与事后升精度的区别:

import torch
matrix = torch.tensor([[0.1, 1.0/3], [2.5, -0.25]], dtype=torch.float32)
for row in matrix.detach().cpu().tolist():
    print(" ".join(f"{value:.10f}" for value in row))
stored32 = torch.tensor(0.1, dtype=torch.float32)
promoted = stored32.double()
created64 = torch.tensor(0.1, dtype=torch.float64)
assert promoted.item() == stored32.item()
assert promoted.item() != created64.item()
print("promoted/created64:", f"{promoted.item():.17g}", f"{created64.item():.17g}")

这些断言比较的是指定构造下的存储数值,不是在宣称 float64 对所有任务都更合适。真正需要双精度计算时,从数据读入和模型参数开始统一 dtype;最后给结果 .double() 只换容器精度,不恢复之前舍入的信息。

整 Tensor 调整 printoptions,单元素用 item 后格式化;多元素日志可像例子按行转换。GPU 上逐元素 item 会频繁同步,较大日志可先一次搬到 CPU,再在主机格式化,避免调试输出拖慢训练。

验证显示格式后,若只是临时调试,恢复项目预期的打印选项。不要通过设置更多小数位判断数值计算已经更准确,也不要把未初始化 Tensor 的内容写成可重复示例输出。

参考:原始求助帖;技术依据:torch.set_printoptions(2.5)、Tensor.item(2.5)、torch.from_numpy(2.5)、torch.empty(2.5)。

相关文章
|
10天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
3995 19
|
11天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
4135 49
|
11天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
1976 7
|
6天前
|
云安全 人工智能 安全
|
6天前
|
存储 弹性计算 人工智能
2026 年阿里云双十一活动入口攻略,新客服务器优惠通道、三大会场入口梳理
综合来看,2026年阿里云双十一活动入口清晰: 阿里云轻量应用服务器、阿里云ECS云服务器、阿里云GPU云服务器、阿里云百炼大模型服务平台 活动会场、综合权益中心、99计划专场三大入口覆盖服务器、AI权益与续费特价;新用户通过控制台首页banner、权益中心、产品页三处路径进入专属专场,老用户通过控制台弹窗和费用中心权益中心进入老客专区,企业用户做企业实名后解锁专属满减与阶梯折扣。
819 0
|
5天前
|
Linux 开发工具 iOS开发
2026最新codex下载安装保姆级使用教程(下载+安装+登录+使用,含所有历史版本)
本文详解OpenAI Codex国内快速上手指南:提供Win/macOS/Linux全平台免安装包、npm/Homebrew等多方式安装、账号/API Key双登录、简体中文切换,覆盖下载、安装、汉化、使用及高频避坑(如微软商店失败、npm超时等),10分钟即可跑通。
1087 2
|
12天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
2144 6
|
云安全 安全 网络安全
|
24天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
4337 58