卷积层如何接受 6 个输入并给出 16 个输出?

How Convolution Layer takes 6 input and gives 16 output?

我们正在尝试在 FPGA 上构建前向卷积神经网络。我们构建的配置基于 LeNet-5 架构。

在第一个卷积层,没有问题。只有 1 个输入(照片)并提供 6 个输出(6 个特征图)和 6 (5*5) 个过滤器。

顺便说一句,我们在 spyder-tensorflow 等上训练了我们的网络和数据。

但是在第二个卷积层,有 6 个输入(第一个最大池化层的输出)和 16 个输出,带有 16 (5*5*6) 个过滤器。 我们的研究助理对我们说 "you have 6 input and (5*5) filter which has depth of 6. It means every input corresponds the filters neighbour depth of filter. At the end of the convolution, you can sum all of the multiplication results so that you have just 1 output for 1 filter."

但是在哪个过程中我们会对乘法结果进行求和。

在python/spyder/tensorflow conv2d函数中做一些事情,我们得到了结果。但在硬件方面,我必须知道这是如何进行的。

感谢您的帮助。对不起我的英语。

Here is the explanation with picture

花点时间看看这个:

http://cs231n.github.io/assets/conv-demo/index.html

我发现这个 gif 在详细了解卷积的计算和完成方式时非常有帮助。希望这可以帮助您了解它在 "hardware".

中是如何进行的