Skip to content

Magnitude

MagnitudePhase(backend='numpy', *args, **kwargs)

Factory function to create a magnitude_phase instance based on the backend.

Parameters:

Name Type Description Default
backend str

The backend to use. Supported options: ["numpy", "torch", "tensorflow"]. Defaults to "numpy".

'numpy'
*args Any

Additional positional arguments to pass to the segmenter.

()
**kwargs Any

Additional keyword arguments to pass to the segmenter.

{}

Returns:

Type Description
Any

An instance of the transform corresponding to the chosen backend.

Raises:

Type Description
ValueError

If an unsupported backend is specified.

NotImplementedError

If the backend is not implemented.

Source code in src/libsegmenter/transforms/MagnitudePhase.py
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
def MagnitudePhase(backend: str = "numpy", *args: Any, **kwargs: Any) -> Any:
    """
    Factory function to create a magnitude_phase instance based on the backend.

    Args:
        backend (str, optional): The backend to use. Supported options:
            ["numpy", "torch", "tensorflow"]. Defaults to "numpy".
        *args (Any): Additional positional arguments to pass to the segmenter.
        **kwargs (Any): Additional keyword arguments to pass to the segmenter.

    Returns:
        An instance of the transform corresponding to the chosen backend.

    Raises:
        ValueError: If an unsupported backend is specified.
        NotImplementedError: If the backend is not implemented.

    """
    if backend == "numpy":
        from libsegmenter.transforms.magnitude_phase.MagnitudePhaseNumpy import (
            MagnitudePhaseNumpy,
        )

        return MagnitudePhaseNumpy(*args, **kwargs)

    if backend == "tensorflow":
        from libsegmenter.transforms.magnitude_phase.MagnitudePhaseTensorFlow import (
            MagnitudePhaseTensorFlow,
        )

        return MagnitudePhaseTensorFlow(*args, **kwargs)

    if backend == "torch":
        from libsegmenter.transforms.magnitude_phase.MagnitudePhaseTorch import (
            MagnitudePhaseTorch,
        )

        return MagnitudePhaseTorch(*args, **kwargs)

    raise ValueError(f"The '{backend}' backend is not known.")