AdaptivePooling计算公式
链接在此。在AdaptivePooling的计算过程中,kernel size和stride并不总是固定的,⽽是根据公式获得。
由于卷积核的尺⼨与步长不固定,因此给出计算区间更为⽅便。
以⼤⼩为13的张量经过⾃适应平均池化变为⼤⼩5的张量为例:
左端点 start = floor(range(5)X13/5),即
adaptivestart = floor(2.6X[0, 1, 2, 3, 4])
=floor([0, 2.6, 5.2, 7.8, 10.4])
=[0, 2, 5, 7, 10]
右端点 end = ceil((range(5)+1)X13/5),即
end = ceil(2.6X[1, 2, 3, 4, 5])
=ceil([2.6, 5.2, 7.8, 10.4, 13])
=[3, 6, 8, 11, 13]
计算区间为[左端点, 右端点)的左闭右开区间,分别为[0, 3), [2, 6), [5, 8), [7, 11), [10, 13)(注意端点这⾥的数字是索引的意思)。
以张量[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]为例,五个区间分别为[0, 3), [2, 6), [5, 8), [7, 11), [10, 13)。那么计算结果为avg(0+1+2)=1
avg(2+3+4+5)=3.5
avg(5+6+7)=6
avg(7+89+9+10)=8.5
avg(10+11+12)=11
即[1, 3.5, 6, 8.5, 11]