Caffe Convolution Layer的Num输出如何与内核和跨步大小一起使用?

时间:2017-04-15 23:05:35

标签: machine-learning deep-learning caffe convolution

也许是一个noob问题,但在阅读Github上的caffe.proto文件后,我无法调和卷积层的两个(实际上是三个)规范是如何共存的:

  1. 输出数量;
  2. 内核大小和步幅。
  3. 不要核心大小和步幅必然要求卷积层的输出数量?我在.proto文件中看到输出的数量是一个可选的规范,这让我相信输出的数量可以是用户定义的,而不是内核大小和步幅的派生函数。这是真的?如果是,为了什么目的?

2 个答案:

答案 0 :(得分:1)

没有。 num_output是指输出的渠道数,而kernel_sizepadstride用于计算每个渠道的大小。

答案 1 :(得分:1)

卷积层将卷作为输入和输出。输出量取决于: -

1. Kernel size
2. Kernel stride
3. padding 
4. No of kernels (filters)

例如: - 如果输入音量为32x32x3且卷积层有10 (no of kernels)个5x5 (kernel size)过滤器,stride 1和pad 2,那么空间输出大小将为: -

input_size+pad*2-kernel_size/stride+1

(32 + 2 * 2-5)/ 1 + 1 = 32 因此在空间上大小将是32x32 并且输出的深度始终等于No of kernels。即10 因此输出量将为32x32x10