编程语言
首页 > 编程语言> > python-Theano中的逆FFT

python-Theano中的逆FFT

作者:互联网

我知道theano.tensor.fourier.fft is essentially numpy.fft.fft.但是,我想知道是否实现了逆FFT?也就是说,是否存在类似于theano.tensor.fourier.ifft的东西,它等同于numpy.fft.ifft?

我注意到this有它,但是我不确定它做我想做的是多么完整或可靠.也许对Theano有更好了解的人可以在这里加油.

另外,如果我要使用此沙箱傅里叶,该如何做呢?只需调用theano.sandbox.fourier.fft(x)(其中x是一维张量),就会返回错误:

AttributeError: 'module' object has no attribute 'fourier'

有没有办法解决这个问题?

解决方法:

我无法评论代码的健壮性,但Theano总体上仍在开发中(版本0.7),并且此代码位于沙箱中,我认为应该比Theano的其余部分健壮得多.

显然,此FFT操作是不完整的,因为它目前无法计算梯度(请注意TODO注释).如果您需要渐变,那么抱歉,此操作将无济于事(也许您可以完成并提交增强功能?)

该实现只是numpy实现的一个填充,因此,如果numpy的实现足够完整且可靠,可以执行您想要的操作,那么Theano填充也是可能的.

请注意,由于这只是包装numpy,因此不会在GPU上运行,并且如果将此操作与其他启用GPU的操作混合并在GPU上运行,则由于数据向后复制和在主存储器和GPU存储器之间转发.

要使用此操作,请执行以下操作:

import theano
import theano.sandbox.fourier as tsf

tsf.ifft(frames=..., n=..., axis=...)

标签:fft,ifft,theano,python,numpy
来源: https://codeday.me/bug/20191119/2039216.html