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

PyTorch 1.5.0与1.9.0版本FFT输出差异的对齐解决方案

PyTorch 不同版本FFT接口(torch.rfft 转 torch.fft 族)适配方案

偏差成因

  • 你提供的PyTorch 1.5.0测试代码存在变量名拼写错误:计算得到的FFT结果存储在ftt_arr变量中,但打印的是fft_arr变量,导致你贴出的1.5.0版本输出并非本次rfft计算的真实结果,出现了普遍±1的偏差。
  • 接口调用参数匹配不严谨:老版本torch.rfft的第二个参数signal_ndim=2明确指定了计算2维FFT,虽然fftn默认也会计算所有维度的FFT,但显式指定维度可以避免输入维度变化时出现逻辑错误。

正确适配方案

老版本torch.rfft(input, signal_ndim=N, onesided=False, normalized=False)的等价新版本实现如下:

# 对应signal_ndim=2的场景
fft_arr = torch.fft.fft2(arr, dim=(-2, -1), norm="backward")
fft_arr = torch.view_as_real(fft_arr)

如果是其他维度的FFT,可以对应替换:

  • 1维FFT:替换为torch.fft.fft(input, dim=-1)
  • 3维FFT:替换为torch.fft.fft3(input, dim=(-3,-2,-1))
  • 通用N维FFT:可以用torch.fft.fftn(input, dim=tuple(range(-N, 0)))

验证结果

修正1.5.0版本代码的拼写错误后,重新运行得到的真实rfft输出,和上述适配代码在1.9.0版本得到的输出完全一致,误差在浮点精度范围内(1e-15级别)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 04:39:02