如何使用PyFFTW的威士忌

时间:2017-07-25 10:08:59

标签: python fftw 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)

docs表示export_wisdom输出一个字符串元组,import_wisdom将此元组作为参数。

我应该何时输出智慧,我是否应该将这个元组保存到每个FFT的文件中?

我何时将其重新装入?在调用每个FFT之前?

1 个答案:

答案 0 :(得分:2)

基本上,导出和导入智慧是一种在会话之间维持状态的方法。

智慧是关于如何最好地规划FFT的知识。在会议期间,内部的“智慧”由所有制定的计划和已经导入的智慧组成。重复导入相同的智慧文件是没有用的,因为在第一次导入后就已经知道了这些知识。

当您希望使用有关特定转换计划的知识而不必再次使用时,您可以导出智慧。它只需要为每个会话计划一次转换。