如何使用矩阵乘法加速2D'完整'卷积(多核)?

时间:2015-04-15 13:40:30

标签: c++ matrix neural-network convolution

我正在使用卷积深度神经网络(特别是CRBM)。我需要执行几个有效的'卷积和几个完整的'卷积。我需要优化他们的速度。我正在使用C ++。

如果有效'卷积我通过重新排列图像(这相当于Matlab中的 im2col )并将(矩阵乘法)乘以内核矩阵(每行一个),可以将其加速约50% ,用一个矩阵乘法代替几个卷积。

不幸的是,我还没有能够获得满满的'卷积。我知道我也可以重新排列图像(在Matlab中使用等效的 convmtx2 ),但只是将图像矩阵重新排列到卷积矩阵已经慢得多(几乎一个数量级)而不是做所有的卷积。卷积矩阵变得非常快。

是否有一种很好的实用方法可以加快速度。使用C ++中的矩阵乘法进行卷积(使用多个内核)?也许,一种有效的计算convmtx2的方法?

0 个答案:

没有答案