【发布时间】:2017-09-04 12:04:15
【问题描述】:
Keras 层文档指定了卷积层的输入和输出大小: https://keras.io/layers/convolutional/
输入形状:(samples, channels, rows, cols)
输出形状:(samples, filters, new_rows, new_cols)
并且内核大小是一个空间参数,即仅确定宽度和高度。
因此,无论c 的值如何,带有c 通道的输入都会产生带有filters 通道的输出。因此,它必须应用带有空间height x width 过滤器的二维卷积,然后以某种方式为每个学习的过滤器聚合结果。
这个聚合运算符是什么?它是跨渠道的总和吗?我可以控制它吗?我在 Keras 文档中找不到任何信息。
- 请注意,在 TensorFlow 中,过滤器也在深度通道中指定: https://www.tensorflow.org/api_guides/python/nn#Convolution, 这样深度操作就很清楚了。
谢谢。
【问题讨论】:
-
你需要阅读this。
-
来自此页面:“在输出体积中,第 d 个深度切片(大小为 W2×H2)是对输入体积执行第 d 个过滤器的有效卷积的结果一个 SS 的步幅,然后被第 d 个偏差抵消。”。所以我仍然不了解这些带有 2D 内核的体积卷积如何变成 2D 结果。深度维度是通过求和降低的吗?
-
"示例1.例如,假设输入体积的大小为[32x32x3],(例如RGB CIFAR-10图像)。如果感受野(或过滤器大小)为5x5,则Conv 层中的每个神经元将具有输入体积中 [5x5x3] 区域的权重,总共 5*5*3 = 75 个权重(和 +1 个偏置参数)。请注意,沿深度的连接程度轴必须是 3,因为这是输入体积的深度。” - 我猜你错过了它的 3D 内核 [宽度、高度、深度]。所以结果是跨渠道求和。
-
@Nilesh Birari ,我的问题是如何知道 Keras 在做什么。我猜是总和,但我怎么能确定呢?