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

如何将numpy浮点型数组转换为无精度损失的torch张量?

问题说明

你观察到的现象不是实际精度丢失,只是PyTorch的默认打印配置只展示4位小数导致的视觉差异。torch.from_numpy()本身是零拷贝接口,会和原numpy数组共享内存,转换前后的数值完全一致,不存在精度损失,本身就能满足精度完全一致的转换需求。

验证方法

你可以通过修改打印配置或者直接对比单个元素值来确认:

import numpy as np
import torch

test = ['0.01171875', '0.01757812', '0.02929688']  
test_np = np.array(test).astype(float)
test_torch = torch.from_numpy(test_np)

# 方法1:修改PyTorch打印精度,显示完整小数位
torch.set_printoptions(precision=8)
print(test_torch)
# 输出:tensor([0.01171875, 0.01757812, 0.02929688], dtype=torch.float64)

# 方法2:对比单个元素的实际值
print(test_np[0] == test_torch[0].item())
# 输出:True

注意事项

如果要绝对保证精度匹配,只要确保转换前numpy数组的浮点类型和你需要的精度一致即可:

  • 若numpy数组为float32,转换后得到的torch张量也为float32
  • 若numpy数组为float64,转换后得到的torch张量也为float64
    torch.from_numpy()会完全继承原numpy数组的dtype,不需要额外调用其他转换函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 17:30:03