为什么num_output是卷积参数?
Why is num_output a convolution parameter?
假设将我们的输入图像传递到卷积层中,如 sample caffe net:
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 参数实际上决定了内核与 整个图像 的卷积次数(至少在单通道-图片案例)。所以它实际上根本不与图像和过滤器的宽度和高度值交互。
假设将我们的输入图像传递到卷积层中,如 sample caffe net:
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 参数实际上决定了内核与 整个图像 的卷积次数(至少在单通道-图片案例)。所以它实际上根本不与图像和过滤器的宽度和高度值交互。