pixel_shuffle

paddle.nn.functional.pixel_shuffle ( x, upscale_factor, data_format=’NCHW’, name=None ) [源代码]

该算子将一个形为[N, C, H, W]或是[N, H, W, C]的Tensor重新排列成形为 [N, C/r**2, H*r, W*r]或 [N, H*r, W*r, C/r**2] 的Tensor。这样做有利于实现步长(stride)为1/r的高效sub-pixel(亚像素)卷积。详见Shi等人在2016年发表的论文 Real Time Single Image and Video Super Resolution Using an Efficient Sub Pixel Convolutional Neural Network

注解

详细请参考对应的 Class 请参考: PixelShuffle

参数

  • x (Tensor): 当前算子的输入, 其是一个形状为 [N, C, H, W] 的4-D Tensor。其中 N 是batch size, C 是通道数, H 是输入特征的高度, W 是输入特征的宽度。 其数据类型为float32或者float64。

  • upscale_factor (int):增大空间分辨率的增大因子

  • data_format (str,可选): 数据格式,可选:”NCHW”或”NHWC”,默认:”NCHW”

  • name (str,可选): 操作的名称(可选,默认值为None)。更多信息请参见 Name

返回

Tensor, 输出Tensor, 其数据类型与输入相同。

代码示例

  1. import paddle
  2. import paddle.nn.functional as F
  3. x = paddle.randn((2, 9, 4, 4))
  4. out = F.pixel_shuffle(x, 3)
  5. print(out.shape)
  6. # (2, 1, 12, 12)