chainer.functions.space2depth

chainer.functions.space2depth(X, r)[source]

Computes the space2depth transformation for subpixel calculations.

Parameters
  • X (Variable or N-dimensional array) – Variable holding a 4d array of shape (batch, channel, dim1 * r, dim2 * r).

  • r (int) – the downscaling factor.

Returns

A variable holding the downscaled layer array from subpixel array sampling. The shape is (batch, channel * r * r, dim1, dim2).

Return type

Variable

Note

This can be used to compute inverse super-resolution transformations. See https://arxiv.org/abs/1609.05158 for details.

See also

depth2space()

Example

>>> X = np.arange(24).reshape(1, 1, 4, 6).astype(np.float32)
>>> X.shape
(1, 1, 4, 6)
>>> X
array([[[[ 0.,  1.,  2.,  3.,  4.,  5.],
         [ 6.,  7.,  8.,  9., 10., 11.],
         [12., 13., 14., 15., 16., 17.],
         [18., 19., 20., 21., 22., 23.]]]], dtype=float32)
>>> y = F.space2depth(X, 2)
>>> y.shape
(1, 4, 2, 3)
>>> y.array
array([[[[ 0.,  2.,  4.],
         [12., 14., 16.]],
<BLANKLINE>
        [[ 1.,  3.,  5.],
         [13., 15., 17.]],
<BLANKLINE>
        [[ 6.,  8., 10.],
         [18., 20., 22.]],
<BLANKLINE>
        [[ 7.,  9., 11.],
         [19., 21., 23.]]]], dtype=float32)