Keras 层文档指定了卷积层的输入和输出大小: https ://keras.io/layers/convolutional/
输入形状: (samples, channels, rows, cols)
输出形状: (samples, filters, new_rows, new_cols)
内核大小是一个空间参数,即只确定宽度和高度。
因此,无论 c
的值如何,具有 c
通道的输入将产生具有 filters
通道的输出。因此,它必须应用具有空间 height x width
过滤器的 2D 卷积,然后以某种方式为每个学习的过滤器聚合结果。
这个聚合运算符是什么?它是跨渠道的总和吗?我可以控制它吗?我找不到有关 Keras 文档的任何信息。
- 请注意,在 TensorFlow 中,过滤器也在深度通道中指定: https ://www.tensorflow.org/api_guides/python/nn#Convolution ,因此深度操作很清楚。
谢谢。
原文由 yoki 发布,翻译遵循 CC BY-SA 4.0 许可协议
它被称为 Conv2D 层可能会让人感到困惑(对我来说,这就是我来寻找这个答案的原因),因为正如 Nilesh Birari 评论的那样:
也许 2D 源于这样一个事实,即内核仅沿两个维度 _滑动_,第三个维度是固定的,由输入通道的数量(输入深度)决定。
如需更详尽的解释,请阅读 https://petewarden.com/2015/04/20/why-gemm-is-at-the-heart-of-deep-learning/
我从那里摘了一张说明性图片: