Как использовать мудрость PyFFTW

Я не видел фактического примера в документации pyfftw о том, как использовать функцию "мудрости", поэтому я немного запутался.

Мой код выглядит примерно так:

# first FFT
input = pyfftw.zeros_aligned(arraySize, dtype='complex64')
input[:] = image
fftwObj = pyfftw.builders.fft2(input, planner_effort='FFTW_EXHAUSTIVE')
imageFFT = fftwObj(input)

wisdom = pyfftw.export_wisdom()

pyfftw.import_wisdom(wisdom)

# second FFT with the same input size but different input
input = pyfftw.zeros_aligned(arraySize, dtype='complex64')
input[:] = image2
fftwObj = pyfftw.builders.fft2(input, planner_effort='FFTW_EXHAUSTIVE')
imageFFT2 = fftwObj(input)

Документы говорят, что export_wisdom выводит кортеж строк и import_wisdom принимает в этом кортеже в качестве аргумента.

Когда я должен экспортировать мудрость и должен ли я сохранить этот кортеж в файл для каждого БПФ?

Когда я могу загрузить его обратно? Перед звонком на каждый БПФ?

1 ответ

Решение

По сути, экспорт и импорт мудрости - это метод поддержания состояния между сессиями.

Мудрость - это знание о том, как лучше спланировать БПФ. Во время сеанса внутренняя "мудрость" состоит из всех составленных планов и импортированной мудрости. Повторный импорт одного и того же файла мудрости бесполезен, поскольку эти знания уже известны после первого импорта.

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

Другие вопросы по тегам