Suh*_*pta 3 python computer-vision conv-neural-network keras tensorflow
我正在尝试使用Keras实现AlexNet,并正在检查 MATLAB 中的网络设计,如下所示
可以看出,第二个卷积层有 256 个大小为 5x5 的滤波器、48 个通道和 [2 2 2 2] 的填充。我怎么能用padding
Keras指定[2 2 2 2] ?我浏览了Conv2D的文档。它只接受 2 个填充值,即valid
和same
。我无法理解这一点。据我所知,valid
这意味着零填充。我怎么能用第二个卷积层指定 [2 2 2 2] 填充?我将第一层创建为:
model.add(keras.layers.Conv2D(filters = 96, kernel_size = (11,11),
strides = (4,4), padding = "valid", input_shape=(227,227,3)))
Run Code Online (Sandbox Code Playgroud)
另外,因为在第二层有 48 个通道,我需要明确说明它吗?
特定的填充Conv2D
不是在ZeroPadding2D
层中指定的,而是在层中指定的。
valid
并且same
实际上只是常见填充的简写 -valid
意味着您不填充输入并same
意味着您添加填充以使输出长度与输入长度相同。
在您的情况下,如果您想添加大小为 2 的特定填充:
model.add(keras.layers.ZeroPadding2D(padding=(2, 2)))
model.add(keras.layers.Conv2D(filters = 96, kernel_size = (11,11), strides = (4,4), padding = "valid"))
Run Code Online (Sandbox Code Playgroud)
我还强烈建议查看alexnet 的这个keras 实现。请注意,您还可以在keras 卷积文档中找到填充层的文档(一直在底部)。
归档时间: |
|
查看次数: |
8835 次 |
最近记录: |