Source code for draugr.numpy_utilities.signal_utilities.truncation

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

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

           Created on 16-12-2020
           """

from typing import Iterable, Sequence

__all__ = ["last_dim_truncate", "min_length_truncate_batch", "truncate_to_power_2"]

from warg.math.powers import prev_pow_2


[docs]def min_length_truncate_batch(batch: Iterable[Sequence]) -> Iterable: """ :param batch: :return:""" min_seq_len = min([s.shape[-1] for s in batch]) return [last_dim_truncate(s, min_seq_len) for s in batch]
def min_length_truncate_batch_2d(batch: Iterable[Sequence]) -> Iterable: """ :param batch: :return:""" min_seq_len = min([len(s) for s in batch]) return [last_dim_truncate(s, min_seq_len) for s in batch]
[docs]def last_dim_truncate(sequence: Sequence, min_length: int) -> Sequence: """ :param sequence: :param min_length: :return:""" return sequence[..., :min_length]
[docs]def truncate_to_power_2(signal: Sequence) -> Sequence: """description""" return last_dim_truncate(signal, prev_pow_2(len(signal)))
if __name__ == "__main__": def gasdasa() -> None: """ :rtype: None """ from draugr.torch_utilities import to_tensor base = 5 stair_length = 9 stair = [to_tensor(range(i + base)) for i in range(stair_length)] trunc = [last_dim_truncate(s, base) for s in stair] print(to_tensor(trunc)) def basdiuj() -> None: """ :rtype: None """ import numpy asda = numpy.arange(2**5 - 1) print(asda, len(asda)) trunc = truncate_to_power_2(asda) print(trunc, len(trunc)) # gasdasa() basdiuj()