【问题标题】:How Convolution Layer takes 6 input and gives 16 output?卷积层如何接受 6 个输入并给出 16 个输出?
【发布时间】:2020-02-22 13:22:07
【问题描述】:

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

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

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

但是在第二个卷积层,有 6 个输入(它们是第一个最大池化层的输出)和 16 个输出,带有 16 个(5*5*6)滤波器。 我们的研究助理对我们说:“你有 6 个输入和 (5*5) 个深度为 6 的滤波器。这意味着每个输入对应于滤波器的相邻滤波器深度。在卷积结束时,你可以将所有的乘法结果,因此 1 个过滤器只有 1 个输出。”

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

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

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

Here is the explanation with picture

【问题讨论】:

    标签: tensorflow neural-network conv-neural-network cudnn


    【解决方案1】:

    花点时间看看这个:

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

    我发现这个 gif 在详细了解如何计算和完成卷积时非常有用。希望这可以帮助您了解它是如何在“硬件”中进行的。

    【讨论】:

    • 谢谢。这意味着我必须为每个窗口获取卷积结果,然后对所有结果求和。在对求和结果添加偏差后,我们可以应用 relu 函数。再次感谢。
    猜你喜欢
    • 2021-07-26
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 2021-10-19
    相关资源
    最近更新 更多