当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cusignal.convolution.convolve.choose_conv_method用法及代码示例


用法:

cusignal.convolution.convolve.choose_conv_method(in1, in2, mode='full', measure=False)

找到最快的卷积/相关方法。

这主要存在于 convolvecorrelate 中的 method='auto' 选项期间调用,但也可以在执行相同输入形状和 dtype 的许多卷积时使用,确定对所有这些使用哪种方法,或者避免 ‘auto’ 选项的开销或使用准确的 real-world 测量。

参数

in1array_like

第一个参数传入卷积函数。

in2array_like

第二个参数传入卷积函数。

modestr {‘full’, ‘valid’, ‘same’},可选

指示输出大小的字符串:

full

输出是输入的完全离散线性卷积。 (默认)

valid

输出仅包含那些不依赖零填充的元素。

same

输出与 in1 大小相同,以 ‘full’ 输出为中心。

measure布尔型,可选

如果为 True,则使用这两种方法运行 in1in2 的卷积并计算时间,并以最快的速度返回。如果为 False(默认),则使用预先计算的值预测最快的方法。

返回

methodstr

指示哪种卷积方法最快的字符串,可以是‘direct’ or ‘fft’

times字典,可选

包含每种方法所需时间(以秒为单位)的字典。此值仅在 measure=True 时返回。

例子

估计给定输入的最快方法:

>>> import cusignal
>>> import cupy as cp
>>> a = cp.random.randn(1000)
>>> b = cp.random.randn(1000000)
>>> method = cusignal.choose_conv_method(a, b, mode='same')
>>> method
'fft'

然后可以将其应用于具有相同 dtype 和形状的其他数组:

>>> c = cp.random.randn(1000)
>>> d = cp.random.randn(1000000)
>>> # `method` works with correlate and convolve
>>> corr1 = cusignal.correlate(a, b, mode='same', method=method)
>>> corr2 = cusignal.correlate(c, d, mode='same', method=method)
>>> conv1 = cusignal.convolve(a, b, mode='same', method=method)
>>> conv2 = cusignal.convolve(c, d, mode='same', method=method)

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cusignal.convolution.convolve.choose_conv_method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。