Source code for draugr.torch_utilities.operations.sizes.pad2d

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

__author__ = "Christian Heider Nielsen"
__doc__ = r"""

           Created on 23/07/2020
           """

from typing import Sequence, Tuple, Union

from warg import replicate

__all__ = ["pad2d_hw_shape"]


[docs]def pad2d_hw_shape( h_w: Union[int, Tuple[int, int]], pad_size: Union[int, Tuple[int, int], Tuple[int, int, int, int]] = 1, ) -> Tuple[int, int]: """ quad(left,right,top,bottom) torch quad definition double(h,w) single(all) :param pad_size: :param h_w: :type h_w: :return: :rtype:""" h_w = replicate(h_w) if isinstance(pad_size, Sequence) and len(pad_size) == 4: pad = (pad_size[2:], pad_size[:2]) # NOTE: permuted torch quadruple pad order else: pad_size = replicate(pad_size) pad = (replicate(pad_size[0]), replicate(pad_size[1])) h = h_w[0] + sum(pad[0]) # Sum across pad[0] (top,bottom) w = h_w[1] + sum(pad[1]) # Sum across pad[1] (left,right) return h, w
if __name__ == "__main__": print(pad2d_hw_shape(5, 1)) print(pad2d_hw_shape(5, (10, 10))) print(pad2d_hw_shape(5, (10, 10, 3, 2)))