pixel_shuffle¶
- paddle.fluid.layers.nn. pixel_shuffle ( x, upscale_factor ) [source]
- 
         This op rearranges elements in a tensor of shape [N, C, H, W] to a tensor of shape [N, C/r**2, H*r, W*r]. This is useful for implementing efficient sub-pixel convolution with a stride of 1/r. Please refer to the paper: Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network . by Shi et. al (2016) for more details. - Parameters
- 
           - x (Variable) – 4-D tensor, the data type should be float32 or float64. 
- upscale_factor (int) – factor to increase spatial resolution. 
 
- Returns
- 
           Reshaped tensor according to the new dimension. 
- Return type
- 
           Out(Variable) 
- Raises
- 
           ValueError – If the square of upscale_factor cannot divide the channels of input. 
 Examples # declarative mode import paddle.fluid as fluid import numpy as np input = fluid.data(name="input", shape=[2,9,4,4]) output = fluid.layers.pixel_shuffle(x=input, upscale_factor=3) place = fluid.CPUPlace() exe = fluid.Executor(place) exe.run(fluid.default_startup_program()) input_data = np.random.rand(2,9,4,4).astype("float32") output_data = exe.run(fluid.default_main_program(), feed={"input":input_data}, fetch_list=[output], return_numpy=True) # print(output.shape) # (2L, 1L, 12L, 12L) 
