如何使用FFTW智慧
How to use PyFFTW's wisom
我没有在 pyfftw 的文档中看到有关如何使用 'wisdom' 功能的实际示例,所以我有点困惑。
我的代码如下所示:
# 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 之前?
基本上,导出和导入智慧是一种在session秒之间保持状态的方法。
智慧是关于如何最好地规划 FFT 的知识。在session期间,内部"wisdom"由所有制定的计划和输入的智慧组成。重复导入相同的智慧文件没有用,因为该知识在第一次导入后就已经知道了。
当您希望使用有关特定转换计划的知识而不是必须重新制定时,您就输出了智慧。不过,它只需要为每个 session 计划一次转换。
我没有在 pyfftw 的文档中看到有关如何使用 'wisdom' 功能的实际示例,所以我有点困惑。
我的代码如下所示:
# 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 之前?
基本上,导出和导入智慧是一种在session秒之间保持状态的方法。
智慧是关于如何最好地规划 FFT 的知识。在session期间,内部"wisdom"由所有制定的计划和输入的智慧组成。重复导入相同的智慧文件没有用,因为该知识在第一次导入后就已经知道了。
当您希望使用有关特定转换计划的知识而不是必须重新制定时,您就输出了智慧。不过,它只需要为每个 session 计划一次转换。