當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。