pixel_unshuffle¶
- paddle.nn.functional. pixel_unshuffle ( x, downscale_factor, data_format='NCHW', name=None ) [源代码] ¶
将一个形为 \([N, C, H, W]\) 或 \([N, H, W, C]\) 的 Tensor 重新排列成形为 \([N, r^2C, H/r, W/r]\) 或 \([N, H/r, W/r, r^2C]\) 的 Tensor,这里 \(r\) 是减小空间分辨率的减小因子。这个算子是 pixel_shuffle 算子(请参考:pixel_shuffle)的逆算子。详见施闻哲等人在 2016 年发表的论文 Real Time Single Image and Video Super Resolution Using an Efficient Sub Pixel Convolutional Neural Network 。
注解
详细请参考对应的 Class 请参考:PixelUnshuffle 。
参数¶
x (Tensor) – 当前算子的输入,其是一个形状为 \([N, C, H, W]\) 或 \([N, H, W, C]\) 的 4-D Tensor。其中 \(N\) 是批大小,\(C\) 是通道数,\(H\) 是输入特征的高度,\(W\) 是输入特征的宽度。其数据类型为 float32 或 float64。
downscale_factor (int) – 减小空间分辨率的减小因子。
data_format (str,可选) – 数据格式,可选 NCHW 或 NHWC,默认为 NCHW,即(批大小,通道数,高度,宽度)的格式。
name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。
返回¶
Tensor
,重新排列过的 Tensor,其数据类型与输入相同。
代码示例¶
import paddle
import paddle.nn.functional as F
x = paddle.randn([2, 1, 12, 12])
out = F.pixel_unshuffle(x, 3)
print(out.shape)
# [2, 9, 4, 4]