"""
Module.
Examples
--------
"""
__author__ = "Yeremia Gunawan Adhisantoso"
__email__ = "adhisant@tnt.uni-hannover.de"
__license__ = "Clear BSD"
__version__ = "1.0.0"
import numpy as np
from ...preprocs import rand_downsample
[docs]
class RandomDownsampleCM():
"""
Class RandomDownsampleCM.
Parameters
----------
Returns
-------
Examples
--------
Notes
-----
"""
def __init__(
self,
min_rate=1.0,
max_rate=1.0,
):
"""
Initializes the RandomDownsampleCM transform.
Parameters
----------
min_rate : float, optional
Minimum downsampling rate (default is 1.0).
max_rate : float, optional
Maximum downsampling rate (default is 1.0).
Raises
------
ValueError
If min_rate is greater than max_rate.
If min_rate or max_rate is not between 0 and 1.0.
Examples
--------
"""
if min_rate > max_rate:
raise ValueError("min_rate must be less than or equal to max_rate")
if not (0 <= min_rate <= 1.0):
raise ValueError("min_rate must be between 0 and 1.0")
if not (0 <= max_rate <= 1.0):
raise ValueError("max_rate must be between 0 and 1.0")
self.min_rate = min_rate
self.max_rate = max_rate
self.val_range = self.max_rate - self.min_rate
def __call__(
self,
data,
):
"""
Function __call__.
Parameters
----------
Returns
-------
Examples
--------
Notes
-----
"""
target_ds_rate = self.val_range * np.random.rand() + self.min_rate
cm = data['input']
cm = rand_downsample(
cm,
target_ds_rate,
)
data['input'] = cm
return data