tensorflow - 了解 2D 卷积输出大小
问题描述
我是卷积深度学习的初学者。我在论文Simultaneous Feature Learning and Hash Coding with Deep Neural Networks中看到了以下架构:对于大小为 256*256 的图像,
我不明白第一个2D卷积的输出大小:96*54*54。96 似乎很好,因为过滤器的数量是 96。但是,如果我们对输出大小应用以下公式:size = [(W−K+2P)/S]+1
= [(256 - 11 + 2*0)/4] + 1 = 62.25 ~ 62。我假设填充, P 为 0,因为它在论文中的任何地方都没有提到。Keras Conv2D API 产生相同的 96*62*62 大小的输出。那么,为什么paper指向96*54*54呢?我错过了什么?
解决方案
嗯,它让我想起了AlexNet 论文中存在类似错误的地方。你的计算是正确的。我认为他们错误地写了 256x256 而不是 224x224,在这种情况下,输入层的计算是,
(224-11+2*0)/4 + 1 = 54.25 ~ 54
很有可能作者错误地写了 256x256 而不是真正的架构输入大小为 224x224(AlexNet 也是这种情况),或者另一个不太可能的选择是他们写了 256x256,这是真正的架构输入大小,但计算224x224。后者是可以忽略的,因为我认为这是一个非常愚蠢的错误,我认为这甚至不是一个选择。
因此,我相信真正的输入大小是 224x224 而不是 256x256。
推荐阅读
- selenium - 基于我之前的 qu-如何使用 selenium java 对下拉列表中的每个值执行一些操作?
- ubuntu - 在 Ubuntu 18.04.1 LTS 中安装 Neo4j
- embedded - 内核耦合存储器 (CCM)、中断和 STM32F3xx
- javascript - Javascript二维数组包括
- python - Pywinauto-如何从对话框中获取消息内容
- sql - 在sql中选择父子案例的递归查询
- r - 自定义损失和切片 (Keras R)
- node.js - Sequelize 删除 JSON 中不存在的行
- entity-framework - EF Core 中实体的导航属性
- javascript - 如何创建一个递增数字的 for 循环,直到找到余数为 0 的数字?