torch中傅里叶变换函数定义和用法的新旧版对比是怎样
Admin 2022-11-03 群英技术资讯 828 次浏览
fft = torch.rfft(input, 2, normalized=True, onesided=False) # input 为输入的图片或者向量,dtype=torch.float32,size比如为[1,3,64,64] # signal_ndim(int):The number of dimensions in each signal,can only be 1、2、3 # normalized(bool,optional):controls wheather to return normallized results. Default:False # onesided(bool,optional):controls whether to return half of results to avoid redundancy.Default:True
上面例子中图像中 singal_ndim = 2 ,是因为输入图像是2维的。
1.7之后的版本中,如果要用 oneside output,则改用torch.fft.rfft();如果要用two-side output,则改用torch.fft.fft()
input= torch.arange(4) fft = torch.rfft(input, 2, normalized=True, onesided=False)
一维离散傅里叶变换
torch.fft.rfft(input,n=None,dim=-1,norm=None) --> Tensor # input:Tensor # n(int,optional):Output signal length. This determines the length of the output signal. # dim(int, optional): The dimension along which to take the one dimensional real IFFT. # norm (str, optional): Normalization mode.
二维离散傅里叶变换
torch.fft.rfft2(input, s=None, dim=(-2, -1), norm=None, *, out=None) -> Tensor input (Tensor): the input tensor s (Tuple[int], optional): Signal size in the transformed dimensions. dim (Tuple[int], optional): Dimensions to be transformed. norm (str, optional): Normalization mode.
高维离散傅里叶变换
rfftn(input, s=None, dim=None, norm=None, *, out=None) -> Tensor input (Tensor): the input tensor s (Tuple[int], optional): Signal size in the transformed dimensions. dim (Tuple[int], optional): Dimensions to be transformed. norm (str, optional): Normalization mode. For the forward transform
import torch input = torch.rand(1,3,32,32) # 旧版pytorch.rfft()函数 fft = torch.rfft(input, 2, normalized=True, onesided=False) # 新版 pytorch.fft.rfft2()函数 output = torch.fft.fft2(input, dim=(-2, -1)) output = torch.stack((output.real, output_new.imag), -1)
ffted = torch.rfft(input, 1, onesided=False) to ffted = torch.view_as_real(torch.fft.fft(input, dim=1)) and iffted = torch.irfft(time_step_as_inner, 1, onesided=False) to iffted = torch.fft.irfft(torch.view_as_complex(time_step_as_inner), n=time_step_as_inner.shape[1], dim=1)
import numpy as np import torch import paddle def paddle_fft(x,dim=-1): if dim==-1: return paddle.to_tensor(np.fft.fft(x.numpy())) else: shape= [i for i in range(len(x.shape))] shape[dim],shape[-1]=shape[-1],shape[dim] x=np.transpose(np.fft.fft(np.transpose(x.numpy(), shape)),shape) return paddle.to_tensor(x) if __name__ == '__main__': data=paddle.to_tensor(np.array([[[1, 4, 3], [1, 2, 3]], [[1, 2, 3], [1, 2, 3]]])) paddle_f_d=paddle_fft(paddle_fft(data,-1),-2) torch_f_d =paddle_fft(torch.fft.fft(torch.Tensor(data.numpy()),dim=-1),-2) print(paddle_f_d.numpy()) print(torch_f_d.numpy())
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
AOP,就是面向切面编程,简单的说,就是动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。我们管切入到指定类指定方法的代码片段称为切面,而切入到哪些类、哪些方法则叫切入点。这样我们就可以把几个类共有的代码,抽取到一个切片中,等到需要时再切入对象中去,从而改变其原有的行为。
本篇文章给大家带来了关于Python的相关知识,其中主要整理了随机森林模型的相关问题,包括了集成模型简介、随机森林模型基本原理、使用sklearn实现随机森林模型等等内容,
这篇文章是一篇入门篇,主要给大家介绍了关于python开发中的Docker安装部署,图文方式展示了安装的过程步骤,有需要的朋友可以参考下
质因数就是质数,质因数在数论指能整除给定正整数的质数。除1外,没有其他公共质数因子的两个正整数称为倒数质数。下面,小编就向大家介绍python中分解质因数的方法。
List(列表)作为python中使用最频繁的数据类型,如果能够把列表掌握,那么对于Python的掌握是有很大帮助的。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008