我需要使用許多其他矩陣來卷積矩陣,並且只需幾個呼叫即可進行convn。MATLAB - 將多個卷積蒙版應用於單個矩陣
例如:我有size(MyMat)=[fm, fm ,1, bSize]
和size(masks)=[s, s, maskNum]
我想res(:,:,k,:)
是卷積masks(:,:,k)
的產物與MyMat
res(:,:,k,:)=convn(MyMat,masks(:,:,k));
由於卷積過的運行時間80%的佔用我的腳本被稱爲數十萬次,我不想使用循環。
我正在尋找最快的方式來做到這一點。基本上,你可以說我有bSize
矩陣,我想用卷積掩碼masks
對所有的卷積進行儘可能少的調用。
矩陣都是小的,非稀疏,基於FFT的卷積可能會慢下來(這裏驗證:)一評註)
(我之所以有1的MyMat
大小是因爲我實際上有更多的元素在這個維度,但我計算每個元素的卷積,維度在一個循環)
主要目標是簡單地消除對以下循環的需要,或使其與非常平行如果可能,開銷不大:
如果有一種方法比平常開銷少做這個PARFOR謝謝210
並行的GPU將是巨大的!
「小」是什麼意思? 10乘10 ish或100乘100 ish? – horchler
矩陣大小可以在1x1x10x1000到9x9x20x1000之間的任何位置,但卷積可能在尺寸高達9x9x1x1000的矩陣之間(未來可能爲21x21x1x1000)。卷積將應用多個掩碼,這將佔據第三維 – user1999728