mirror of
https://github.com/huggingface/pytorch-image-models.git
synced 2025-06-03 15:01:08 +08:00
28 lines
625 B
Python
28 lines
625 B
Python
|
""" Common Helpers
|
||
|
|
||
|
Hacked together by Ross Wightman
|
||
|
"""
|
||
|
from itertools import repeat
|
||
|
from torch._six import container_abcs
|
||
|
|
||
|
|
||
|
# From PyTorch internals
|
||
|
def _ntuple(n):
|
||
|
def parse(x):
|
||
|
if isinstance(x, container_abcs.Iterable):
|
||
|
return x
|
||
|
return tuple(repeat(x, n))
|
||
|
return parse
|
||
|
|
||
|
|
||
|
tup_single = _ntuple(1)
|
||
|
tup_pair = _ntuple(2)
|
||
|
tup_triple = _ntuple(3)
|
||
|
tup_quadruple = _ntuple(4)
|
||
|
|
||
|
|
||
|
# Calculate symmetric padding for a convolution
|
||
|
def get_padding(kernel_size: int, stride: int = 1, dilation: int = 1, **_) -> int:
|
||
|
padding = ((stride - 1) + dilation * (kernel_size - 1)) // 2
|
||
|
return padding
|