python - 当我保持每层 Maxpooling 时,如何克服我的输出形状减小的问题?
问题描述
我正在构建一维卷积神经网络 (CNN)。从许多来源我了解到,如果添加更多层,CNN 的性能会提高。然而,在每个池化层,我的输出形状比我的输入小 50%(因为我使用的池大小为 2)。这意味着一旦我的输出具有形状 1,我就无法添加更多层。
有没有办法克服这个“减少形状问题”,或者只是增加我的输入形状的问题?
解决方案
我正在构建一维卷积神经网络 (CNN)。从许多来源我了解到,如果添加更多层,CNN 的性能会提高。
这并非总是如此。它通常取决于您拥有的数据和您要解决的任务。
引用https://www.quora.com/Why-do-we-use-pooling-layer-in-convolutional-neural-networks
池化允许特征相对于彼此移动,从而即使在存在小的失真的情况下也能实现特征的稳健匹配。池化还有许多其他好处,例如: 减少特征图的空间维度。因此也减少了处理层次结构中较高的参数数量。这简化了整体模型的复杂性。
然后根据步幅、池大小和填充,您可能会自愿减少输出形状。
回到您的问题,如果您不希望您的形状减小,请考虑使用 strides=1 和 padding='same'。
推荐阅读
- javascript - 带有回调的 useEffect 不更新状态
- polymer - Polymer 3 - 如何构建用于另一个项目的组件
- javascript - 考虑到性能和广告显示,如何使用 React 和样式化组件在 2 个响应式标题(移动和桌面)之间切换?
- reactjs - 将导入的 .less 文件转换为 css 字符串
- laravel - Laravel Api Postman 上传图片返回 Null
- python - 如何从浏览器登录和获取cookie - Python
- javascript - 当倒数计时器 = 0 时,警报按钮或提交表单
- docker - 如何在 Docker 容器中将 Flask 应用程序调试模式设置为 True
- javascript - 自定义 Google 表格功能将项目添加到逗号分隔列表
- c# - 身份服务器多租户(针对多个数据库进行身份验证)