def split(self, num_splits: int, randomize: bool = False) -> List['FeatureSet']: """ Split the ``FeatureSet`` into ``num_splits`` pieces of equal size. :param num_splits: Requested number of splits. :param randomize: Optionally randomize the features order first. :return: A list of ``FeatureSet`` pieces. """ return [ FeatureSet.from_features(subset) for subset in split_sequence(self, num_splits=num_splits, randomize=randomize) ]
def split(self, num_splits: int, shuffle: bool = False) -> List['SupervisionSet']: """ Split the ``SupervisionSet`` into ``num_splits`` pieces of equal size. :param num_splits: Requested number of splits. :param shuffle: Optionally shuffle the supervisions order first. :return: A list of ``SupervisionSet`` pieces. """ return [ SupervisionSet.from_segments(subset) for subset in split_sequence(self, num_splits=num_splits, shuffle=shuffle) ]
def split( self, num_splits: int, shuffle: bool = False, drop_last: bool = False ) -> List["SupervisionSet"]: """ Split the :class:`~lhotse.SupervisionSet` into ``num_splits`` pieces of equal size. :param num_splits: Requested number of splits. :param shuffle: Optionally shuffle the recordings order first. :param drop_last: determines how to handle splitting when ``len(seq)`` is not divisible by ``num_splits``. When ``False`` (default), the splits might have unequal lengths. When ``True``, it may discard the last element in some splits to ensure they are equally long. :return: A list of :class:`~lhotse.SupervisionSet` pieces. """ return [ SupervisionSet.from_segments(subset) for subset in split_sequence( self, num_splits=num_splits, shuffle=shuffle, drop_last=drop_last ) ]