2014-02-07 65 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卷积的实现。 –