torch中fft和ifft新旧版本使用

 1. 傅里叶变换

import torch
input = torch.randn(64, 1, 200, 200)
# ### 旧版 ###
# # 时域=>频域
# output_fft_old = torch.fft(input, signal_ndim=2, normalized=False, onesided=False)
# # 频域=>时域
# output_ifft_old = torch.ifft(output_fft_old , signal_ndim=2, normalized=False, onesided=False)

### 新版 ###
# 时域=>频域
output_fft_new = torch.fft.fft2(input, dim=(-2, -1))
output_fft_new_2dim = torch.stack((output_fft_new.real, output_fft_new.imag), -1)  # 根据需求将复数形式转成数组形式
# 频域=>时域
# 输入为复数形式
output_ifft_new = torch.fft.ifft2(output_fft_new, dim=(-2, -1))
# 输入为数组形式,需要转为复数形式
output_ifft_new_2dim = torch.fft.ifft2(torch.complex(output_fft_new_2dim[..., 0],
                                                output_fft_new_2dim[..., 1]), dim=(-2, -1))
# 输出复数的模
output_ifft_new = torch.abs(output_ifft_new)
print(output_fft_new.shape)
print(output_fft_new_2dim.shape)
print(output_ifft_new.shape)
print(output_ifft_new_2dim.shape)

 2. 结果

torch.Size([64, 1, 200, 200])
torch.Size([64, 1, 200, 200, 2])
torch.Size([64, 1, 200, 200])
torch.Size([64, 1, 200, 200])

  • 13
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值