Mei*_*Zhu 3 machine-learning neural-network conv-neural-network keras
我正在阅读 Francois Chollet 写的《Learning with Python》一书。在第 128 页,作者正在讨论使用连续 Conv2d 层而不是 maxpooling 层的问题。我的问题来自以下段落。我不明白7X7从何而来?
\n\n\n\n\n它不利于学习特征的空间层次结构。第三层中的 3 个 \xc3\x97 3 个窗口\n 仅包含来自初始输入中的 7 个 \xc3\x97 7 个窗口的信息。相对于初始输入,卷积网络学习的高级模式仍然非常小,这可能不足以学习对数字进行分类(尝试仅通过以下窗口来识别数字) n 7 \xc3\x97 7 像素!)。我们需要最后一个卷积层的特征来包含有关输入整体的信息。
\n
Layer (type) Output Shape Param #\n================================================================\nconv2d_4 (Conv2D) (None, 26, 26, 32) 320\n________________________________________________________________\nconv2d_5 (Conv2D) (None, 24, 24, 64) 18496\n________________________________________________________________\nconv2d_6 (Conv2D) (None, 22, 22, 64) 36928\n================================================================\nTotal params: 55,744\nTrainable params: 55,744\nNon-trainable params: 0\nRun Code Online (Sandbox Code Playgroud)\n
小智 5
我假设你的 cnn 架构只有 3*3 内核。
得益于 3*3 内核,第一层根据您的输入创建特征映射。这些特征图的每个像素仅依赖于输入的 3*3 正方形。第二层正在做完全相同的事情,将特征图作为输入。所以现在,一个像素依赖于 3*3 平方的特征图,而特征图又依赖于 5*5 平方的输入。
通过第三次这样做,第三层特征图上的像素仅依赖于输入的 7*7 窗口。
这是一个一维示例:
* # third layer pixel
| | |
* * * # second layer pixels
| | | | |
* * * * * # first layer pixels
| | | | | | |
* * * * * * * # input pixels --> An unique third layer layer pixel depends on only 7 input pixels
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |