【发布时间】:2015-11-18 10:18:04
【问题描述】:
我正在为神经网络使用卷积,目前它是这样实现的
for f = 1:NumberOfKernels
tempC = conv2(input(:,:,1),kernels(:,:,1,f),'same');
tempM = conv2(input(:,:,2),kernels(:,:,2,f),'same');
tempY = conv2(input(:,:,3),kernels(:,:,3,f),'same');
preactivation(:,:,f) = tempC + tempM + tempY;
end
这可以在一行中完成,而无需单独为每个颜色通道写出 conv2 吗?图像处理工具箱中的this 函数可以加快速度吗?考虑到我没有 GPU。
【问题讨论】:
-
如果您没有 GPU,启用 GPU 的功能将无法运行。这就像问你是否可以骑自行车上班,前提是你没有自行车。
-
如果所有通道的内核都相同,则可以使用
convn一次。 -
你试过
imfilter(它不需要GPU)吗? @rayryeng:如果所有内核都相同,则可以利用distributivity of convolution 并可能在此处使用单个conv2,不是吗? -
@horchler - 啊,是的。我没有那样想。这可以工作。
-
内核对于所有通道都不相同,如果是这样,它对颜色不敏感。
标签: matlab image-processing optimization convolution