Spaces:
Runtime error
Runtime error
import torch | |
class min_max_scaler(): | |
def __init__(self, upper_bound=1, lower_bound=0): | |
self.upper = upper_bound | |
self.lower = lower_bound | |
self.minimum = torch.ones(1) * torch.inf | |
self.maximum = - torch.ones(1) *torch.inf | |
def fit(self, set_maximum=0.0, set_minimum=-100.0): | |
"""Find min and max of given subset OR set min and max manually. | |
Since dB-spectrograms are on the scale [-100, 0] by default, default values are set to those values. | |
Args: | |
set_maximum (float, optional): set maximum value manually. Defaults to 0.0. | |
set_minimum (float, optional): set minimum value manually. Defaults to -100.0. | |
Returns: | |
None: None | |
""" | |
if set_minimum is not None and set_maximum is not None: | |
self.minimum = set_minimum | |
self.maximum = set_maximum | |
return None | |
def transform(self, spectrogram): | |
if self.minimum == torch.inf: | |
raise ValueError("Cannot transform before scaler is fitted with min-max-values") | |
return (self.upper - self.lower) * (spectrogram - self.minimum) / (self.maximum - self.minimum) + self.lower | |
def inverse_transform(self, spectrogram): | |
if self.minimum == torch.inf: | |
raise ValueError("Cannot inverse transform before scaler is fitted with min-max-values") | |
return (spectrogram - self.lower) * (self.maximum - self.minimum) / (self.upper - self.lower) + self.minimum |