Возможности scipy fft backends - PullRequest
1 голос
/ 19 июня 2020

Я ищу документацию по бэкэндам fft. Это очень коротко. Но я нашел это в демонстрации слайдов RalfGommers:

У меня вопрос, какие еще бэкенды можно протестировать? Согласно документации, PyFFTW предоставляет способ заменить ряд функций в scipy.fft своими собственными функциями, которые обычно значительно быстрее, через pyfftw.interfaces. Поскольку PyFFTW полагается на FFTW под лицензией GPL, он не может быть включен в SciPy. Пользователи, для которых важна скорость выполнения подпрограмм БПФ, должны рассмотреть возможность установки PyFFTW.

Итак, следуя примечаниям к выпуску и проблемам GitHub SciPy и NumPy, вы оба по умолчанию приняли pocketfft. С бэкэндом я могу использовать fftw с ограничениями лицензии. Но что еще я могу сделать с этими внутренними свойствами? Я действительно не понимаю, какие строки я могу использовать или какие объекты здесь прокомментированы:

Параметры

backend: {object, ‘scipy’}

    The backend to use. Can either be a str containing the name of a known backend {‘scipy’}, or an object that implements the uarray protocol.

1 Ответ

1 голос
/ 19 июня 2020

Я не смог найти в документации ничего, кроме того, что вы уже знаете. Но я взглянул на _backends.py в модуле scipy.fft:

_named_backends = {
    'scipy': _ScipyBackend,
}

def _backend_from_arg(backend):
    """Maps strings to known backends and validates the backend"""

    if isinstance(backend, str):
        try:
            backend = _named_backends[backend]
        except KeyError:
            raise ValueError('Unknown backend {}'.format(backend))

    if backend.__ua_domain__ != 'numpy.scipy.fft':
        raise ValueError('Backend does not implement "numpy.scipy.fft"')

    return backend

Кажется, моя установка принимает только 'scipy'.

...