2014-02-07 107 views
0

我已經使用Opencv的gpu::convolve在CUDA上進行卷積。我看到 cuda convnet也卷積。任何人都知道如何從C++調用cuda convnet來獲得類似於OpenCv的gpu :: convolve的邏輯?我想比較哪些實現更快速地運行CUDA上的卷積,尤其是在圖像上運行一批過濾器時。cuda convnet equvilent方法從opencv gpu :: convolve

+0

convnet是卷積神經網絡它是(相當複雜和強大的)無監督學習工具。卷積運算(在圖像處理中)只是相鄰像素值的簡單加權求和。 –

+0

Andrey,convnet有幾個部分,它很複雜,正如你注意到的那樣。代碼沒有大量記錄,所以必須閱讀代碼。它在圖像上進行卷積運算,所以我想知道是否有一個像opencv的gpu :: convolve這樣的方法。 – superryu

回答

1

我覺得你可以在文件夾中使用位於(我的機器上)CUDA樣本: C:\ ProgramData \ NVIDIA公司\ CUDA樣品\ V5.5 \ 3_Imaging \ convolutionSeparable \

這裏是說明文: http://developer.download.nvidia.com/compute/cuda/1.1-Beta/x86_64_website/projects/convolutionSeparable/doc/convolutionSeparable.pdf

+0

+1。這非常有幫助。 convnet是否使用它在實現中獲得「最佳」性能? – superryu

+0

我不認爲這個convnet使用可分卷積,因爲並不是所有的內核都是可分離的,但卷積網絡需要與任意內核(通過訓練計算)進行卷積。我認爲它使用了2D卷積的實現。 –