C++ 如何加速2D';完整';矩阵乘法的卷积(多核)?

C++ 如何加速2D';完整';矩阵乘法的卷积(多核)?,c++,matrix,neural-network,convolution,C++,Matrix,Neural Network,Convolution,我正在研究卷积深度神经网络(尤其是CRBM)。我需要执行几个“有效”卷积和几个“完整”卷积。我需要优化他们的速度。我正在使用C++。 在“有效”卷积的情况下,我已经能够通过重新排列图像(这相当于Matlab中的im2col)并乘以(矩阵乘法)核矩阵(每行一个),将几个卷积替换为一个矩阵乘法,将其加速50%左右 不幸的是,我还不能获得任何与“完全”卷积。我知道我也可以重新排列图像(在Matlab中使用等效的convmtx2),但简单地将图像矩阵重新排列为卷积矩阵已经比执行所有卷积慢得多(几乎一个数

我正在研究卷积深度神经网络(尤其是CRBM)。我需要执行几个“有效”卷积和几个“完整”卷积。我需要优化他们的速度。我正在使用C++。 在“有效”卷积的情况下,我已经能够通过重新排列图像(这相当于Matlab中的im2col)并乘以(矩阵乘法)核矩阵(每行一个),将几个卷积替换为一个矩阵乘法,将其加速50%左右

不幸的是,我还不能获得任何与“完全”卷积。我知道我也可以重新排列图像(在Matlab中使用等效的convmtx2),但简单地将图像矩阵重新排列为卷积矩阵已经比执行所有卷积慢得多(几乎一个数量级)。卷积矩阵很快变大


< >在C++中用矩阵乘法加速“满”卷积(多核)是否可行?也许,计算convmtx2的一种有效方法

我很困惑。。。你是说你在C++中这样做,但是你在给Matlab命令。你想把MATLAB代码移植到C++吗?@ RyANP,很抱歉,我只是在Matlab中给出了等价物,但是我在C++中编码了一个IM2COL和VARMTX2的等价物。这里描述了CAFE框架是如何执行卷积的:也许它能给你一些help@Mailerdaimon这就是我为“有效”卷积所做的。不幸的是,这不能直接适用于“完全”卷积。