A = torch.fft.rfft(a_full, onesided=False, normalized=False) TypeError: fft_rfft() got an unexpected keyword argument 'onesided'
时间: 2024-09-06 19:08:07 浏览: 113
torch.cuda.is_available()返回False解决方案
5星 · 资源好评率100%
在使用PyTorch进行快速傅里叶变换(FFT)时,你遇到了一个问题。具体来说,`torch.fft.rfft` 函数没有接受到参数 'onesided'。这是因为在PyTorch的某些版本中,`rfft` 函数的参数名可能不同。
正确的参数名应该是 `n`,它可以接受一个整数来指定输入数据的大小。如果你想要进行单边的FFT,即只计算正频率部分,你需要确保传递给 `rfft` 的数据是合适的,并且可能需要对结果进行适当的处理。
以下是如何正确调用 `torch.fft.rfft` 的示例:
```python
import torch
# 假设 a_full 是你要进行FFT变换的输入数据
# n 是变换后输出的大小,必须是大于等于 len(a_full) 的最小的2的幂次方
n = 2 ** (a_full.numel() - 1).bit_length()
# 使用 rfft 进行实数到半复数的快速傅里叶变换
A = torch.fft.rfft(a_full, n=n, norm=None)
```
请确保你使用的PyTorch版本中,`rfft` 函数包含 `n` 和 `norm` 参数,并根据你的需求进行调整。
阅读全文