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

PyTorch旧版torch.rfft/irfft在1.9版本的兼容替换方案咨询

PyTorch 1.9版本兼容旧版FFT接口解决方案

PyTorch 1.8+推出的torch.fft模块统一了FFT相关API,旧版接口返回实部、虚部拼接在最后一维的实张量,新版接口默认返回复数张量,参数逻辑也做了调整,以下是你提供的三段代码的等价替换方案:

1. 旧版torch.rfft替换

旧代码:

fU = torch.rfft(u, 1, onesided=False)

新版等价代码:

# signal_ndim=1 表示对最后1维做FFT,onesided=False对应完整复数FFT
fU = torch.view_as_real(torch.fft.fft(u, dim=-1))

torch.view_as_real会把复数张量的实部、虚部在最后一维拼接,和旧版输出的shape完全一致。

2. 旧版torch.irfft替换

旧代码:

U = torch.irfft(fU, 1, onesided=False)

新版等价代码:

# 先把实部虚部拼接的张量转回复数张量,逆FFT后取实部匹配旧版输出逻辑
U = torch.fft.ifft(torch.view_as_complex(fU), dim=-1).real

3. 旧版torch.fft替换

旧代码:

torch.fft(x, x.ndim)

新版等价代码:

# x.ndim表示对所有维度做N维FFT,输出保持实部虚部拼接格式
torch.view_as_real(torch.fft.fftn(x, dim=tuple(range(x.ndim))))

注意事项

  • 如果你原本的旧代码中onesided参数为True,则对应替换为torch.fft.rfft/torch.fft.irfft即可,无需调整其他逻辑
  • 替换后可通过torch.allclose(旧版输出, 新版输出, atol=1e-6)验证数值一致性,排除浮点计算误差影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:48:02