caffe - 为什么 num_output 是卷积参数?
问题描述
假设将我们的输入图像传递到卷积层,如示例 caffe 网络中一样:
layer {
name: "conv1"
type: "Convolution"
bottom: "data"
.
.
.
convolution_param {
num_output: 96
kernel_size: 11
stride: 4
}
.
.
.
}
网络如何准确地为我们提供我们想要的输出数量,同时准确地使用它给出的卷积核的大小和步幅?内核大小和步幅不应该已经决定了我们将获得的输出数量(模填充决策)吗?
如果我有一个 5x5 的图像,使用步长 2 和零填充边界将其与 3x3 内核进行卷积,那么我希望从卷积中获得 3x3 的输出。但是如果我要求num_output: 5
呢?或者num_output: 100
?
解决方案
经过一些实验,看起来这个 num_output 参数实际上决定了你将内核与整个图像卷积多少次(至少在单通道图像的情况下)。所以它实际上根本不与图像和过滤器的宽度和高度值交互。
推荐阅读
- java - 如何使按钮在不同的点击量上发生变化java
- floating-point - MIPS32 在添加 IEEE 754 双精度数时确定输入长度
- shell - 除了原始模式之外,还有其他方法可以在 Rust 中处理箭头键输入吗?
- php - mysql 和 php 函数未正确显示 % 百分比符号
- django - 添加到 django 中的多线程字段
- pywinusb - pywinusb 无法读取或写入数据
- uwsgi - 如何在 500 响应中制作瓶子打印错误消息?
- javascript - Masonry 仅在调整浏览器大小时有效
- javascript - 复制功能实现
- r - 更改数据框列表上的日期