Skip to content

compose

Module diagram

classDiagram
  class compose {
  }
  class base_compose {
  }
  class builder {
  }
  class compose {
  }
  builder --> compose
  compose --> base_compose

data.transform.augmentation.compose

여러 Data Transform들을 하나로 묶어서 관리해주는 기본 BaseCompose 클래스 및 Compose 구현을 제공합니다.

base_compose

Data augmentation을 위한 기본 Compose의 interface를 정의합니다.

BaseCompose

BaseCompose(transforms: Sequence[Union[BaseTransform, BaseCompose]], prob: float = 1.0)

여러 Data Transform들을 하나로 묶어서 관리해주는 Compose의 기본 interface를 정의합니다.

Source code in SaigeToolkit/data/transform/augmentation/compose/base_compose.py
def __init__(
    self, transforms: Sequence[Union[BaseTransform, BaseCompose]], prob: float = 1.0
) -> None:
    self.transforms = transforms
    self.prob = prob
transforms instance-attribute
transforms = transforms
prob instance-attribute
prob = prob
__call__
__call__(*args, force_apply: bool = False, **data) -> Dict
Source code in SaigeToolkit/data/transform/augmentation/compose/base_compose.py
def __call__(self, *args, force_apply: bool = False, **data) -> Dict:
    if args:
        raise KeyError("Data must be passed as named arguments, for example: aug(image=image)")

    if (random.random() < self.prob) or force_apply:
        data = self.apply(**data)

    return data
apply
apply(**data) -> Dict
Source code in SaigeToolkit/data/transform/augmentation/compose/base_compose.py
def apply(self, **data) -> Dict:
    raise NotImplementedError
__len__
__len__() -> int
Source code in SaigeToolkit/data/transform/augmentation/compose/base_compose.py
def __len__(self) -> int:
    return len(self.transforms)
__getitem__
__getitem__(index: int) -> Union[BaseTransform, BaseCompose]
Source code in SaigeToolkit/data/transform/augmentation/compose/base_compose.py
def __getitem__(self, index: int) -> Union[BaseTransform, BaseCompose]:
    return self.transforms[index]
add_targets
add_targets(additional_targets: Dict[str, str]) -> None
Source code in SaigeToolkit/data/transform/augmentation/compose/base_compose.py
def add_targets(self, additional_targets: Dict[str, str]) -> None:
    for t in self.transforms:
        t.add_targets(additional_targets)

builder

logger module-attribute

logger = getLogger('SaigeResearch')

_types module-attribute

_types = {None: {__name__: _XxSjfor _type in _types}, None: {pascal_to_snake(__name__): _JjPHfor _type in _types}}

build_compose

build_compose(_target_: str, transforms: List[BaseTransform], **config) -> BaseCompose
Source code in SaigeToolkit/data/transform/augmentation/compose/builder.py
def build_compose(_target_: str, transforms: List[BaseTransform], **config) -> BaseCompose:
    return _types[_target_](transforms=transforms, **config)

compose

Compose

Compose(transforms: Sequence[Union[BaseTransform, BaseCompose]], prob: float = 1.0)

Bases: BaseCompose

Source code in SaigeToolkit/data/transform/augmentation/compose/base_compose.py
def __init__(
    self, transforms: Sequence[Union[BaseTransform, BaseCompose]], prob: float = 1.0
) -> None:
    self.transforms = transforms
    self.prob = prob
apply
apply(**data) -> Dict
Source code in SaigeToolkit/data/transform/augmentation/compose/compose.py
def apply(self, **data) -> Dict:
    for t in self.transforms:
        data = t(**data)

    return data

SomeOf

SomeOf(k: int, replacement: bool = False, **kwargs)

Bases: BaseCompose

Source code in SaigeToolkit/data/transform/augmentation/compose/compose.py
def __init__(self, k: int, replacement: bool = False, **kwargs) -> None:
    super().__init__(**kwargs)
    self.k = k
    self.replacement = replacement
k instance-attribute
k = k
replacement instance-attribute
replacement = replacement
apply
apply(**data) -> Dict
Source code in SaigeToolkit/data/transform/augmentation/compose/compose.py
def apply(self, **data) -> Dict:
    if self.replacement:
        cur_transforms = random.choices(self.transforms, k=self.k)
    else:
        cur_transforms = random.sample(self.transforms, k=min(len(self.transforms), self.k))

    for t in cur_transforms:
        data = t(**data)

    return data