You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
625 B
28 lines
625 B
""" 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
|