torch.nn.PixelShuffle(upscale_factor)
PixelShuffle是一种上采样方法,它将形状(∗,C×r^2,H,W)的张量重新排列转换为形状为(∗,C,H×r,W×r)的张量:
图片来源:[1]
其中$r$是upscale_factor
因子。
输入输出尺寸:
例子:(1,8,2,2)→(1,2,4,4)
import torch
import torch.nn as nn
ps = nn.PixelShuffle(2)
input = torch.arange(0, 8 * 2 * 2).view(1, 8, 2, 2)
output = ps(input)
print('input:\n',input)
print('output:\n',output)
[1] Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network https://openaccess.thecvf.com/content_cvpr_2016/papers/Shi_Real-Time_Single_Image_CVPR_2016_paper.pdf