【问题标题】:Why are there a set of parameters per input filter in Keras CNN?为什么 Keras CNN 中每个输入滤波器都有一组参数?
【发布时间】:2020-01-18 16:01:15
【问题描述】:

我试图了解this 问题的答案背后的原因。我期望参数的数量是:

total_params = (filter_height * filter_width  + 1) * number_of_filters

但是您必须将高度和宽度乘以输入通道的数量。为什么是这样?这个维度没有参数共享吗?如果是这样,这对特征识别有什么帮助?

我希望 CNN 能够推断频道之间的关系,但我还没有看到这是如何明确完成的。

【问题讨论】:

    标签: python keras conv-neural-network


    【解决方案1】:

    假设您有一个 RGB 图像并且想要通过一个过滤器:number_of_filters = 1

    此过滤器将如何处理每个输入通道:R、G 和 B?

    过滤器是否应该平等对待所有输入通道?绿色通道带来的信息是否与红色通道相同?

    嗯,不,每个通道都有自己的信息,过滤器必须考虑所有输入通道,否则它不会查看整个图像。

    这与密集/完全连接的网络完全相同,您可以:

    total_params =( input_dim + 1 ) * units    
    

    唯一的区别是卷积过滤器具有高度和宽度。

    【讨论】:

    • 感谢您的回答。所以直觉是通道的处理方式不同,所以共享的只是滤波器 (x,y) 的空间参数,而不是 z。那么对于每个过滤器,例如(2x2)和三个通道,有 2x2x3 权重(加上偏差)要学习?
    • 是的,在该示例中,权重为 2x2x3。我不确定我理解您所说的“共享”是什么意思。内核可以通过 x 和 y 滑动,但始终占据整个 Z(而不是在 Z 中滑动)。
    猜你喜欢
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    相关资源
    最近更新 更多