卷积核输出特征图大小的计算
Posted mydream6
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了卷积核输出特征图大小的计算相关的知识,希望对你有一定的参考价值。
先讲一下是怎么卷积的。一般输入的是RGB颜色空间的图片,即有三个通道。可以理解为这三个通道的每个对应的数值组合在一起表示了这一张图片。
卷积操作过程:(通道数变化的原理)
先从一张示意图说起,卷积基础概念和操作步骤就不啰嗦了,只讲这张图,大意就是,有in-channel,有out-channel,你需要把in-channel都做卷积操作,然后产出out-channel,所以这个w是要层层拆解,w分拆成w0和w1,以对应2个out-channel。w0分拆成3个矩阵w0[:,:,0]、w0[:,:,1]、w0[:,:,2],以对应3个in-channel,因为输入的3通道终究要合而为一的(进入一个核):y0=w0*x+b0、y1=w1*x+b1,所以w0只有一个b0对应,而不是三个。又因为卷积操作中,一个核要计算的目标是一个sum总值(绿图中的一个点),而不是9个值,所以3*3的矩阵只要对应1*1的b就够了。
经过卷积后的大小变化公式:
推导的公式:
out_size = (n - k + 2p)/s + 1
输入图片大小为n x n,卷积核kernel_size大小为k x k,步长stride为s,填充padding为p(‘same‘为填充那么P就为1,否则就为0),得到输出特征图out_size大小
举个栗子:
用Darknet53的第一层来说:
layer filters size input output
0 32 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 32
输入的是416X416,三通道的图片,输出为416x416, 32通道的特征图。有可能有人会问,卷积过后图片大小不是会变吗?对,正常卷积大小会变化,但是在这一层进行了用0对原图片进行了填充,卷积步长为1,最后卷积出来过后特征图的大小没有变,只是通道数变了。如果实在是懒的话,请直接食用公式。
以上是关于卷积核输出特征图大小的计算的主要内容,如果未能解决你的问题,请参考以下文章