Skip to content

multiplicative_noise

MultiplicativeNoise

Bases: ImageOnlyAlbumentation

Multiply an image with random perturbations.

Parameters:

Name Type Description Default
inputs Union[str, Iterable[str]]

Key(s) of images to be modified.

required
outputs Union[str, Iterable[str]]

Key(s) into which to write the modified images.

required
mode Union[None, str, Iterable[str]]

What mode(s) to execute this Op in. For example, "train", "eval", "test", or "infer". To execute regardless of mode, pass None. To execute in all modes except for a particular one, you can pass an argument like "!infer" or "!train".

None
ds_id Union[None, str, Iterable[str]]

What dataset id(s) to execute this Op in. To execute regardless of ds_id, pass None. To execute in all ds_ids except for a particular one, you can pass an argument like "!ds1".

None
multiplier Union[float, Tuple[float, float]]

If a single float, the image will be multiplied by this number. If tuple of floats then multiplier will be in the range [multiplier[0], multiplier[1]).

(0.9, 1.1)
per_channel bool

Whether to sample different multipliers for each channel of the image.

False
elementwise bool

If False multiply multiply all pixels in an image with a random value sampled once. If True Multiply image pixels with values that are pixelwise randomly sampled.

False
Image types

uint8, float32

Source code in fastestimator/fastestimator/op/numpyop/univariate/multiplicative_noise.py
@traceable()
class MultiplicativeNoise(ImageOnlyAlbumentation):
    """Multiply an image with random perturbations.

    Args:
        inputs: Key(s) of images to be modified.
        outputs: Key(s) into which to write the modified images.
        mode: What mode(s) to execute this Op in. For example, "train", "eval", "test", or "infer". To execute
            regardless of mode, pass None. To execute in all modes except for a particular one, you can pass an argument
            like "!infer" or "!train".
        ds_id: What dataset id(s) to execute this Op in. To execute regardless of ds_id, pass None. To execute in all
            ds_ids except for a particular one, you can pass an argument like "!ds1".
        multiplier: If a single float, the image will be multiplied by this number. If tuple of floats then `multiplier`
            will be in the range [multiplier[0], multiplier[1]).
        per_channel: Whether to sample different multipliers for each channel of the image.
        elementwise: If `False` multiply multiply all pixels in an image with a random value sampled once.
            If `True` Multiply image pixels with values that are pixelwise randomly sampled.

    Image types:
        uint8, float32
    """
    def __init__(self,
                 inputs: Union[str, Iterable[str]],
                 outputs: Union[str, Iterable[str]],
                 mode: Union[None, str, Iterable[str]] = None,
                 ds_id: Union[None, str, Iterable[str]] = None,
                 multiplier: Union[float, Tuple[float, float]] = (0.9, 1.1),
                 per_channel: bool = False,
                 elementwise: bool = False):
        super().__init__(
            MultiplicativeNoiseAlb(multiplier=multiplier,
                                   per_channel=per_channel,
                                   elementwise=elementwise,
                                   always_apply=True),
            inputs=inputs,
            outputs=outputs,
            mode=mode,
            ds_id=ds_id)