pixel_shuffle

  • paddle.fluid.layers.pixel_shuffle(x, upscale_factor)[源代码]

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

  1. 给定一个形为 x.shape = [1, 9, 4, 4] 4-D张量
  2. 设定:upscale_factor=3
  3. 那么输出张量的形为:[1, 1, 12, 12]
  • 参数:
    • x (Variable)- 维度为 pixel_shuffle - 图1 的多维Tensor,其中最后一维D是类别数目。数据类型为float32或float64。
    • upscale_factor (int)- 增大空间分辨率的增大因子

返回:根据新的维度信息进行重组的张量

返回类型: Variable

抛出异常: ValueError - 如果upscale_factor的平方不能整除输入的通道维度(C)的大小。

示例代码

  1. import paddle.fluid as fluid
  2. input = fluid.layers.data(name="input", shape=[9,4,4])
  3. output = fluid.layers.pixel_shuffle(x=input, upscale_factor=3)