Initialize AffineRangeNormalizer.
(
self,
input_range: tuple[float, float],
output_range: tuple[float, float] = (0, 1),
)
| 45 | """ |
| 46 | |
| 47 | def __init__( |
| 48 | self, |
| 49 | input_range: tuple[float, float], |
| 50 | output_range: tuple[float, float] = (0, 1), |
| 51 | ): |
| 52 | """Initialize AffineRangeNormalizer.""" |
| 53 | super().__init__() |
| 54 | input_min, input_max = input_range |
| 55 | output_min, output_max = output_range |
| 56 | if input_max <= input_min: |
| 57 | raise ValueError(f"Invalid input_range: {input_range}") |
| 58 | if output_max <= output_min: |
| 59 | raise ValueError(f"Invalid output_range: {output_range}") |
| 60 | |
| 61 | self.scale = (output_max - output_min) / (input_max - input_min) |
| 62 | self.bias = output_min - input_min * self.scale |
| 63 | |
| 64 | def forward(self, x: torch.Tensor) -> torch.Tensor: |
| 65 | """Apply affine range normalization over input image.""" |