cupyx.scipy.fftpack.get_fft_plan#
- cupyx.scipy.fftpack.get_fft_plan(a, shape=None, axes=None, value_type='C2C')[源代码][源代码]#
生成一个用于转换最多三个轴的CUDA FFT计划。
- 参数:
a (cupy.ndarray) – 要转换的数组,假设其为 C 或 F 连续的。
shape (None or tuple of ints) – 输出轴变换后的形状。如果未给出
shape,则使用沿axes指定的输入轴的长度。axes (None or int or tuple of int) – 要变换的数组的轴。如果为 None,则假定所有轴都被变换。目前,为了执行 N-D 变换,这些轴必须是一组最多三个相邻的轴,并且必须包括数组的第一个或最后一个轴。
value_type (str) – 要执行的FFT类型。可接受的值包括: * ‘C2C’:复数到复数的变换(默认) * ‘R2C’:实数到复数的变换 * ‘C2R’:复数到实数的变换
- 返回:
一个用于1D变换(
cupy.cuda.cufft.Plan1d)或N-D变换(cupy.cuda.cufft.PlanNd)的cuFFT计划。
备注
返回的计划不仅可以作为
cupyx.scipy.fftpack函数的一个参数传递,还可以作为cupy.fft和cupyx.scipy.fftpack函数的上下文管理器使用:x = cupy.random.random(16).reshape(4, 4).astype(complex) plan = cupyx.scipy.fftpack.get_fft_plan(x) with plan: y = cupy.fft.fftn(x) # alternatively: y = cupyx.scipy.fftpack.fftn(x) # no explicit plan is given! # alternatively: y = cupyx.scipy.fftpack.fftn(x, plan=plan) # pass plan explicitly
在第一种情况下,即使设置了
cupy.fft.config.enable_nd_planning = True,也不会自动生成 cuFFT 计划。备注
如果在
set_cufft_callbacks()的上下文中调用此函数,生成的计划将启用回调。警告
此API与SciPy的有偏差,目前是实验性的,并且可能在未来的版本中进行更改。