Vision layers
class torch.nn.PixelShuffle(upscale_factor)[source]
将shape为$[N, Cr^2, H, W]$的Tensor重新排列为shape为$[N, C, Hr, W*r]$的Tensor。 当使用stride=1/r 的sub-pixel卷积的时候,这个方法是非常有用的。
请看paperReal-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network by Shi et. al (2016) 获取详细信息。
参数说明:
- upscale_factor (int) – 增加空间分辨率的因子
Shape:
- Input: $[N,C*upscale_factor^2,H,W$]
- Output: $[N,C,Hupscale_factor,Wupscale_factor]$
例子:
>>> ps = nn.PixelShuffle(3)>>> input = autograd.Variable(torch.Tensor(1, 9, 4, 4))>>> output = ps(input)>>> print(output.size())torch.Size([1, 1, 12, 12])
class torch.nn.UpsamplingNearest2d(size=None, scale_factor=None)[source]
对于多channel 输入 进行 2-D 最近邻上采样。
可以通过size或者scale_factor来指定上采样后的图片大小。
当给定size时,size的值将会是输出图片的大小。
参数:
- size (tuple, optional) – 一个包含两个整数的元组 (H_out, W_out)指定了输出的长宽
- scale_factor (int, optional) – 长和宽的一个乘子
形状:
- Input: (N,C,H_in,W_in)
- Output: (N,C,H_out,W_out) Hout=floor(H_in∗scale_factor) Wout=floor(W_in∗scale_factor)
例子:
>>> inpVariable containing:(0 ,0 ,.,.) = 1 2 3 4[torch.FloatTensor of size 1x1x2x2]>>> m = nn.UpsamplingNearest2d(scale_factor=2)>>> m(inp)Variable containing:(0 ,0 ,.,.) = 1 1 2 2 1 1 2 2 3 3 4 4 3 3 4 4[torch.FloatTensor of size 1x1x4x4]
class torch.nn.UpsamplingBilinear2d(size=None, scale_factor=None)[source]
对于多channel 输入 进行 2-D bilinear 上采样。
可以通过size或者scale_factor来指定上采样后的图片大小。
当给定size时,size的值将会是输出图片的大小。
参数:
- size (tuple, optional) – 一个包含两个整数的元组 (H_out, W_out)指定了输出的长宽
- scale_factor (int, optional) – 长和宽的一个乘子
形状:
- Input: (N,C,H_in,W_in)
- Output: (N,C,H_out,W_out) Hout=floor(H_in∗scale_factor) Wout=floor(W_in∗scale_factor)
例子:
>>> inpVariable containing:(0 ,0 ,.,.) = 1 2 3 4[torch.FloatTensor of size 1x1x2x2]>>> m = nn.UpsamplingBilinear2d(scale_factor=2)>>> m(inp)Variable containing:(0 ,0 ,.,.) = 1.0000 1.3333 1.6667 2.0000 1.6667 2.0000 2.3333 2.6667 2.3333 2.6667 3.0000 3.3333 3.0000 3.3333 3.6667 4.0000[torch.FloatTensor of size 1x1x4x4]