From d00b92eb5c479a1dd53946c9df2493251c6cbedc Mon Sep 17 00:00:00 2001 From: dothinking Date: Sun, 10 Jul 2022 12:16:46 +0800 Subject: [PATCH] update doc --- ...02\346\225\260\350\256\241\347\256\227.md" | 47 ++++++++++++++----- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git "a/docs/2022-07-03-\347\251\272\351\227\264\351\207\221\345\255\227\345\241\224\346\261\240\345\214\226\357\274\210SPP\357\274\211\345\205\263\351\224\256\345\217\202\346\225\260\350\256\241\347\256\227.md" "b/docs/2022-07-03-\347\251\272\351\227\264\351\207\221\345\255\227\345\241\224\346\261\240\345\214\226\357\274\210SPP\357\274\211\345\205\263\351\224\256\345\217\202\346\225\260\350\256\241\347\256\227.md" index 3a29111..5bc3d4e 100644 --- "a/docs/2022-07-03-\347\251\272\351\227\264\351\207\221\345\255\227\345\241\224\346\261\240\345\214\226\357\274\210SPP\357\274\211\345\205\263\351\224\256\345\217\202\346\225\260\350\256\241\347\256\227.md" +++ "b/docs/2022-07-03-\347\251\272\351\227\264\351\207\221\345\255\227\345\241\224\346\261\240\345\214\226\357\274\210SPP\357\274\211\345\205\263\351\224\256\345\217\202\346\225\260\350\256\241\347\256\227.md" @@ -48,7 +48,7 @@ $$ !!! warning "注意:" - 这是作者为论文中特定场景提出的,确实并不具备(作者也没声明)通用性。 + 这是作者为论文中特定场景提出的,确实并不具备(作者也没主张)其通用性。 ## 初步修正的公式 @@ -114,7 +114,7 @@ p = \left \lceil \frac {(n-1)*s + k - w} {2} \right \rceil \tag{5} $$ -代入 $k=s$,公式(5)退化为公式(3)计算 $p$ 的部分,表明它是公式(5)更具一般性,公式(3)的 $p$ 只是一个特例。 +将 $k=s$ 代入上式即可得到公式(3)中计算 $p$ 的部分,表明上式更具一般性,公式(3)计算 $p$ 的方法只是公式(5)一个特例。 结合(4-1)左半部分和(4-2)右半部分: @@ -160,9 +160,9 @@ $$ 以 $P_1$ 方向为例,因为 $k,s$ 都是正整数,我们取 $P_0$ 右侧最接近的正整数值,即 $k = s = \lceil w / n \rceil$ ,于是得到了网上常见的初步修正的公式,即上文的公式(3)。 -至此,可以解释和统一之前的计算方法。 +至此,可以统一上文提及的计算方法,并且完美解释以下两个问题: -### 公式(3)在什么情况下不再适用? +### (a)公式(3)在什么情况下不再适用? 对照可行域图就很好解释了——绿色线段上可能不存在整数解。 @@ -174,22 +174,46 @@ $$ \frac {w} {n-1} = \frac {a*n+b} {n-1} = a + \frac {a+b} {n-1} $$ -显然,$w/(n-1)$ 的整数部分至少达到 $a+1$ 即 $(a+b)/(n-1) \geq 1$ 时,绿色线段标注的可行域上才有整数解。因此,公式(3)的使用条件: +显然,$w/(n-1)$ 的整数部分至少达到 $a+1$ 即 $(a+b)/(n-1) \geq 1$ 时,绿色线段标注的可行域上才有整数解: $$ \left \lfloor \frac {w} {n} \right \rfloor + \left(w \mod n\right) + 1 \geq n +$$ + +进一步考虑端点上的情况,即上式取等号,此时 $w/(n-1)$ 恰好为整数,且 $k=s=w/(n-1)$,参考公式(5)可知: + +$$ +p = \left \lceil \frac {n*k - w} {2} \right \rceil + = \left \lceil \frac {w} {2 *(n-1)} \right \rceil + = \left \lceil \frac {k} {2} \right \rceil +$$ + +结合 $k \geq 2p$ 的限定条件,此时要求 $k$ 即 $w/(n-1)$ 必须为偶数。 + +综上,公式(3)的使用条件: + +$$ +t = \left \lfloor \frac {w} {n} \right \rfloor + \left(w \mod n\right) + 1 +$$ + +$$ +t \gt n \quad \lor \quad +\left( +t = n \quad \land \quad w/(n-1) \mod 2 = 0 +\right) \tag{7} $$ +其中,$\lor$ 和 $\land$ 分别表示“或”和“且”。 -### 如何处理公式(3)不适用的情况? +### (b)如何处理公式(3)不适用的情况? 当 $w,n$ 不满足不等式(7)时,公式(3)失效,那就走 $P_2$ 的路线,如青色箭头所示: - 此种情况下往右显然不存在可行的$s$了,于是向左一步得到 $P_0$ 附近的 $s$; -- 然后向上增大 $k$ 知道满足可行域要求。 +- 然后向上增大 $k$ 直到满足可行域要求。 以上过程反映了公式(2)的思路,但是为了更具通用性,确定 $k$ 时需要检查是否落在可行域内。将公式(2)中 $s$ 的表达式代入(4-4)的缩放式得到 $k$,然后将 $k,s$ 代入公式(5)计算 $p$,最终得到公式(2)的更一般形式: @@ -213,11 +237,9 @@ $$ ## 完整算法 -适用条件:$w \geq n \gt 1$,不满足此条件时,参考上文例外描述。 -特别说明:以下算法优先选择传统非重叠的池化方式,只有在无法满足时,才考虑重叠的池化方式。如果倾向于重叠的池化方式,则直接进入第(2)部分即可。 - +**已知输入、输出尺寸 $w$ 和 $n$($w \geq n$),求SPP池化层的窗口尺寸$(k)$,步长$(s)$及边距$(p)$**。 -(1)当 $\lfloor w/n \rfloor + \left(w \mod n\right) + 1 \geq n$ 时, +(1)当满足不等式(7)时, $$ s = k = \left \lceil \frac {w} {n} \right \rceil, @@ -225,7 +247,7 @@ s = k = \left \lceil \frac {w} {n} \right \rceil, p = \left \lceil \frac {n*k - w} {2} \right \rceil $$ -(2)$\lfloor w/n \rfloor + \left(w \mod n\right) + 1 \lt n$ 时, +(2)当不满足不等式(7)时, $$ s = \left \lfloor \frac {w} {n} \right \rfloor, @@ -235,3 +257,4 @@ k = w - (n-1)*s, p = 0 $$ +注意:以上算法优先选择传统非重叠的池化方式,只有在无法满足时,才考虑重叠的池化方式。如果倾向于重叠的池化方式,则直接选择第(2)部分计算公式即可。 \ No newline at end of file