From c8e1d32f4105cd3c523c3e4d49ffa4ebea6d35cf Mon Sep 17 00:00:00 2001 From: pa67p85k2 <1328797028@qq.com> Date: Sat, 20 Nov 2021 21:27:01 +0800 Subject: [PATCH] ADD file via upload --- alphapose/datasets1/layers/PixelUnshuffle.py | 28 ++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 alphapose/datasets1/layers/PixelUnshuffle.py diff --git a/alphapose/datasets1/layers/PixelUnshuffle.py b/alphapose/datasets1/layers/PixelUnshuffle.py new file mode 100644 index 0000000..94d0323 --- /dev/null +++ b/alphapose/datasets1/layers/PixelUnshuffle.py @@ -0,0 +1,28 @@ +# ----------------------------------------------------- +# Copyright (c) Shanghai Jiao Tong University. All rights reserved. +# Written by Jiefeng Li (jeff.lee.sjtu@gmail.com) +# ----------------------------------------------------- + +import torch.nn as nn + + +class PixelUnshuffle(nn.Module): + ''' + Initialize: inplanes, planes, upscale_factor + OUTPUT: (planes // upscale_factor^2) * ht * wd + ''' + + def __init__(self, downscale_factor=2): + super(PixelUnshuffle, self).__init__() + self._r = downscale_factor + + def forward(self, x): + b, c, h, w = x.shape + out_c = c * (self._r * self._r) + out_h = h // self._r + out_w = w // self._r + + x_view = x.contiguous().view(b, c, out_h, self._r, out_w, self._r) + x_prime = x_view.permute(0, 1, 3, 5, 2, 4).contiguous().view(b, out_c, out_h, out_w) + + return x_prime