Обратный БПФ в Теано

Я знаю, что theano.tensor.fourier.fft по существу numpy.fft.fft . Однако мне было интересно, был ли реализован обратный БПФ? А именно, есть что-то вроде theano.tensor.fourier.ifft , что эквивалентно numpy.fft.ifft ?

Я заметил, что это так, но я не уверен, насколько он полна или надежна для того, чтобы делать то, что я хочу. Возможно, кто-то, кто лучше понимает Теано, может весить здесь.

Кроме того, если бы я использовал эту песочницу Фурье, как бы мне это сделать? Просто называя theano.sandbox.fourier.fft(x) , где x является 1D-тензором, возвращает ошибку:

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

Есть ли способ исправить это?

Я не могу комментировать надежность кода, но Theano в целом все еще находится в разработке (версия 0.7), и этот код находится в sandbox которая должна, я считаю, считаться еще менее надежной, чем остальная часть Theano.

Понятно, что эта операция FFT является неполной, поскольку в настоящее время она неспособна вычислять градиенты (обратите внимание на комментарии TODO). Если вам нужны градиенты, то извините, эта операция не поможет (может быть, вы можете закончить ее и представить усовершенствование?)

Эта реализация – всего лишь прокладка вокруг реализации numpy, поэтому, если реализация numpy достаточно полна и надежна для того, чтобы делать то, что вы хотите, то это, вероятно, и Theano shim.

Обратите внимание, что поскольку это просто обертывает numpy, оно не будет работать на графическом процессоре, и если вы будете смешивать эту операцию с другими операциями с включенным графическим процессором и работать на графическом процессоре, то у вас будет замедление из-за копирования данных назад и вперед между основными и графическими памятью.

Чтобы использовать эту операцию, вы сделаете следующее:

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