0

我没有在 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元组作为参数。

我应该什么时候导出智慧,我应该将这个元组保存到每个 FFT 的文件中?

我什么时候重新加载它?在调用每个 FFT 之前?

4

1 回答 1

2

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

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

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

于 2017-07-26T13:13:13.763 回答