代码之家  ›  专栏  ›  技术社区  ›  user19346

Theano中的逆FFT

  •  3
  • user19346  · 技术社区  · 11 年前

    我知道 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 是1D张量,返回错误:

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

    有办法解决这个问题吗?

    1 回复  |  直到 11 年前
        1
  •  3
  •   Daniel Renshaw    11 年前

    我不能评论代码的健壮性,但Theano作为一个整体仍在开发中(版本0.7) sandbox 我认为,这应该被认为比Theano的其他地方更不可靠。

    很明显,这个FFT操作是不完整的,因为它目前无法计算梯度(注意TODO注释)。如果你需要渐变,那么对不起,这个操作不会有帮助(也许你可以完成它并提交增强?)

    这个实现只是numpy实现的一个垫片,所以如果numpy的实现足够完整和可靠,可以执行您想要的操作,那么这个Theano垫片可能也是如此。

    请注意,因为这只是包装numpy,所以它不会在GPU上运行,如果您将此操作与其他支持GPU的操作混合在一起,并在GPU上执行,则由于数据在主内存和GPU内存之间来回复制,速度会变慢。

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

    import theano
    import theano.sandbox.fourier as tsf
    
    tsf.ifft(frames=..., n=..., axis=...)