convolution arithmetic¶
reference: |
---|
1. convolution¶
Set input data size \(i\), convolution kernel size \(k\), stride size \(s\), and zero padding size \(p\). Then the output size \(o\) is:
(1)¶\[o = \left\lfloor{\frac{i + 2p - k}{s}}\right\rfloor + 1 \,.
\]
The floor function \({\lfloor}\,{\rfloor}\) can found at https://en.wikipedia.org/wiki/Floor_and_ceiling_functions.
2. pooling¶
According to (1), pooling output size is:
(2)¶\[o = \left\lfloor{\frac{i-k}{s}}\right\rfloor + 1 \,.
\]
3. tansposed convolution¶
explanation: | The convolution operation can be rewritten to matrix multiplication. |
---|
4. dilated convolution¶
The dilation “rate” is controlled by an additional hyperparameter \(d\). A kernel of size k dilated by a factor d has an effective size:
\[\hat{k} = k + (k-1)(d-1) \,.
\]
Combined with (1) the output size is:
(3)¶\[o = \left\lfloor{\frac{i + 2p - k - (k-1)(d-1)}{s}}\right\rfloor + 1 \,.
\]