Как использовать мудрость 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 ответ
По сути, экспорт и импорт мудрости - это метод поддержания состояния между сессиями.
Мудрость - это знание о том, как лучше спланировать БПФ. Во время сеанса внутренняя "мудрость" состоит из всех составленных планов и импортированной мудрости. Повторный импорт одного и того же файла мудрости бесполезен, поскольку эти знания уже известны после первого импорта.
Вы экспортируете мудрость, когда хотите, чтобы знания о конкретном плане трансформации использовались вместо того, чтобы снова их разрабатывать. Это нужно только планировать для этого преобразования один раз за сессию, хотя.