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-contiguous 或 F-contiguous。
shape (None 或 整数元组) – 输出中已转换轴的形状。如果未给出
shape
,则使用输入沿axes
指定轴的长度。要转换数组的轴。如果为 None,则假定所有轴都被转换。
目前,对于执行 N 维转换,这些轴必须是最多三个相邻轴的集合,并且必须包含数组的第一个或最后一个轴。
value_type (str) –
要执行的 FFT 类型。可接受的值包括
’C2C’:复数到复数转换(默认)
’R2C’:实数到复数转换
’C2R’:复数到实数转换
- 返回值:
一个用于一维转换 (
cupy.cuda.cufft.Plan1d
) 或 N 维转换 (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 的存在差异,目前是实验性的,未来版本中可能会发生更改。