SlidingWindow¶
- class SlidingWindow(kernel_size, padding=0, stride=1, dilation=1, **kwargs)[源代码]¶
将滑动窗口应用于input tensor并将窗口中的内容复制到相应的output 位置. 假设 input shape 是 \((N, C, IH, IW)\), 那么 output shape 应该是 \((N, C, OH, OW, window_h, window_w)\) 其中 \((OH, OW)\) 应该由 padding, stride, window 和 \((IH, IW)\) 计算得到, 和卷积一样,对于每个output 位置,有:
\[\begin{split}out_{n, c, oh, ow, wh, ww} &= src_{n, c, ih+wh, iw+ww} \\ \text{where } & ih=-pad_h+oh \times stride_h + (wh-1) \times (dilation_h-1) \\ & iw=-pad_w+ow \times stride_w + (ww-1) \times (dilation_w-1)\end{split}\]- 参数
示例
>>> import numpy as np >>> inp = Tensor(np.arange(30).reshape(1,1,5,6)) >>> op = M.SlidingWindow(kernel_size=3, padding=1, stride=2, dilation=2) >>> out = op(inp) >>> print(out.numpy()) [[[[[[ 0 0 0] [ 0 7 9] [ 0 19 21]] [[ 0 0 0] [ 7 9 11] [19 21 23]]] [[[ 0 7 9] [ 0 19 21] [ 0 0 0]] [[ 7 9 11] [19 21 23] [ 0 0 0]]]]]]