Module: sarpyx.utils.losses

File: sarpyx/utils/losses.py

Differentiable loss functions for SAR applications. This module provides various loss functions optimized for SAR data processing, including standard regression and classification losses, as well as specialized losses for complex-valued SAR data.

Exported Symbols (__all__)

No explicit __all__ list. Public symbols inferred from implementation.

Public Functions (5)

complex_abs function

inferred from implementation.

File location: sarpyx/utils/losses.py:19

Signature

complex_abs(x: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
xtorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import complex_abs

result = complex_abs(x=<x>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

complex_angle function

inferred from implementation.

File location: sarpyx/utils/losses.py:27

Signature

complex_angle(x: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
xtorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import complex_angle

result = complex_angle(x=<x>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

angle_difference function

inferred from implementation.

File location: sarpyx/utils/losses.py:34

Signature

angle_difference(a: torch.Tensor, b: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
atorch.Tensoryes-inferred from implementation.
btorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import angle_difference

result = angle_difference(a=<a>, b=<b>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

gaussian_1d_kernel function

inferred from implementation.

File location: sarpyx/utils/losses.py:548

Signature

gaussian_1d_kernel(window_size: int, sigma: Optional[float]=None, device=None, dtype=torch.float32)

Parameters

ParameterTypeRequiredDefaultDescription
window_sizeintyes-inferred from implementation.
sigmaOptional[float]noNoneinferred from implementation.
deviceinferred from implementationnoNoneinferred from implementation.
dtypeinferred from implementationnotorch.float32inferred from implementation.

Return Type

inferred from implementation

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import gaussian_1d_kernel

result = gaussian_1d_kernel(window_size=<window_size>)

Edge Cases

Includes optional parameters with implementation-defined fallback behavior.

get_loss_function function

Factory function to get loss function by name.

File location: sarpyx/utils/losses.py:2165

Signature

get_loss_function(loss_name: str, **kwargs) -> BaseLoss

Parameters

ParameterTypeRequiredDefaultDescription
loss_namestryes-Name of the loss function
**kwargsinferred from implementationno-Additional arguments for the loss function

Return Type

BaseLoss

BaseLoss: Instantiated loss function

Exceptions

  • ValueError

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import get_loss_function

result = get_loss_function(loss_name=<loss_name>)

Edge Cases

May raise: ValueError.

Public Classes (33)

BaseLoss class

Base class for all loss functions. Args: reduction (str): Specifies the reduction to apply to the output. 'none' | 'mean' | 'sum'. Default: 'mean'

File location: sarpyx/utils/losses.py:39

Class Signature

class BaseLoss

Constructor Parameters

Return Type

BaseLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import BaseLoss

obj = BaseLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

BaseLoss.forward method

Forward pass of the loss function.

File location: sarpyx/utils/losses.py:54

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-Predicted values
targettorch.Tensoryes-Ground truth values

Return Type

torch.Tensor

torch.Tensor: Computed loss

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import BaseLoss

# Constructor arguments are inferred from implementation.
obj = BaseLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

MSELoss class

Mean Squared Error loss. Args: reduction (str): Reduction method. Default: 'mean'

File location: sarpyx/utils/losses.py:76

Class Signature

class MSELoss

Constructor Parameters

Return Type

MSELoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import MSELoss

obj = MSELoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

MSELoss.forward method

Compute MSE loss.

File location: sarpyx/utils/losses.py:84

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-Predicted values of shape (N, ...)
targettorch.Tensoryes-Target values of shape (N, ...)

Return Type

torch.Tensor

torch.Tensor: MSE loss

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import MSELoss

# Constructor arguments are inferred from implementation.
obj = MSELoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

DistributionAwareMSELoss class

Distribution-Aware MSE Loss that weights errors by local statistics. This loss normalizes the squared error by the target's variance, effectively making the loss distribution-aware. It encourages the model to match both the reconstruction quality AND the statistical distribution of the target. Formula: For each pixel: loss = ((pred - target) / (sigma + eps))^2 Where sigma = sqrt(variance of target in the batch/patch) Alternatively (normalized version): loss = ((pred - target) * (target - mean) / (variance + eps))^2 This creates a weighted MSE where: - Errors in high-variance regions are weighted less (natural variation) - Errors in low-variance regions are weighted more (should be consistent) - Implicitly encourages matching the distribution's shape Args: normalization_mode (str): How to compute statistics 'batch': Use batch-level mean/variance (default) 'spatial': Use spatial (per-sample) mean/variance 'channel': Use per-channel statistics use_standardization (bool): If True, uses (x - mean) / std weighting If False, uses 1 / std weighting (simpler). Default: True eps (float): Small constant for numerical stability. Default: 1e-6 reduction (str): Reduction method. Default: 'mean'

File location: sarpyx/utils/losses.py:100

Class Signature

class DistributionAwareMSELoss

Constructor Parameters

Return Type

DistributionAwareMSELoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import DistributionAwareMSELoss

obj = DistributionAwareMSELoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

DistributionAwareMSELoss.forward method

Compute distribution-aware MSE loss.

File location: sarpyx/utils/losses.py:147

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-Predicted values of shape (B, ..., C) or (B, ...) Can be complex-valued or real-valued
targettorch.Tensoryes-Target values of same shape as prediction

Return Type

torch.Tensor

torch.Tensor: Distribution-aware MSE loss

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import DistributionAwareMSELoss

# Constructor arguments are inferred from implementation.
obj = DistributionAwareMSELoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

MAELoss class

Mean Absolute Error loss. Args: reduction (str): Reduction method. Default: 'mean'

File location: sarpyx/utils/losses.py:223

Class Signature

class MAELoss

Constructor Parameters

Return Type

MAELoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import MAELoss

obj = MAELoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

MAELoss.forward method

Compute MAE loss.

File location: sarpyx/utils/losses.py:231

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-Predicted values of shape (N, ...)
targettorch.Tensoryes-Target values of shape (N, ...)

Return Type

torch.Tensor

torch.Tensor: MAE loss

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import MAELoss

# Constructor arguments are inferred from implementation.
obj = MAELoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

HuberLoss class

Huber loss (smooth L1 loss). Args: delta (float): Threshold for switching between quadratic and linear loss. Default: 1.0 reduction (str): Reduction method. Default: 'mean'

File location: sarpyx/utils/losses.py:247

Class Signature

class HuberLoss

Constructor Parameters

Return Type

HuberLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import HuberLoss

obj = HuberLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

HuberLoss.forward method

Compute Huber loss.

File location: sarpyx/utils/losses.py:261

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-Predicted values of shape (N, ...)
targettorch.Tensoryes-Target values of shape (N, ...)

Return Type

torch.Tensor

torch.Tensor: Huber loss

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import HuberLoss

# Constructor arguments are inferred from implementation.
obj = HuberLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

FocalLoss class

Focal Loss for addressing class imbalance. Args: alpha (float, optional): Weighting factor for rare class. Default: 1.0 gamma (float): Focusing parameter. Default: 2.0 reduction (str): Reduction method. Default: 'mean'

File location: sarpyx/utils/losses.py:282

Class Signature

class FocalLoss

Constructor Parameters

Return Type

FocalLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import FocalLoss

obj = FocalLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

FocalLoss.forward method

Compute Focal loss.

File location: sarpyx/utils/losses.py:299

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-Predicted logits of shape (N, C)
targettorch.Tensoryes-Target class indices of shape (N,)

Return Type

torch.Tensor

torch.Tensor: Focal loss

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import FocalLoss

# Constructor arguments are inferred from implementation.
obj = FocalLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

ComplexMSELoss class

Mean Squared Error loss for complex-valued tensors. Args: reduction (str): Reduction method. Default: 'mean'

File location: sarpyx/utils/losses.py:320

Class Signature

class ComplexMSELoss

Constructor Parameters

Return Type

ComplexMSELoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import ComplexMSELoss

obj = ComplexMSELoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

ComplexMSELoss.forward method

Compute MSE loss for complex tensors.

File location: sarpyx/utils/losses.py:328

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-Predicted complex values of shape (N, ...)
targettorch.Tensoryes-Target complex values of shape (N, ...)

Return Type

torch.Tensor

torch.Tensor: Complex MSE loss (real-valued)

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import ComplexMSELoss

# Constructor arguments are inferred from implementation.
obj = ComplexMSELoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

ComplexMAELoss class

Mean Absolute Error loss for complex-valued tensors. Args: reduction (str): Reduction method. Default: 'mean'

File location: sarpyx/utils/losses.py:347

Class Signature

class ComplexMAELoss

Constructor Parameters

Return Type

ComplexMAELoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import ComplexMAELoss

obj = ComplexMAELoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

ComplexMAELoss.forward method

Compute MAE loss for complex tensors.

File location: sarpyx/utils/losses.py:355

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-Predicted complex values of shape (N, ...)
targettorch.Tensoryes-Target complex values of shape (N, ...)

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import ComplexMAELoss

# Constructor arguments are inferred from implementation.
obj = ComplexMAELoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

PhaseLoss class

Phase-based loss for complex-valued tensors. Args: reduction (str): Reduction method. Default: 'mean'

File location: sarpyx/utils/losses.py:371

Class Signature

class PhaseLoss

Constructor Parameters

Return Type

PhaseLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import PhaseLoss

obj = PhaseLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

PhaseLoss.forward method

Compute phase difference loss.

File location: sarpyx/utils/losses.py:379

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-Predicted complex values of shape (N, ...)
targettorch.Tensoryes-Target complex values of shape (N, ...)

Return Type

torch.Tensor

torch.Tensor: Phase loss

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import PhaseLoss

# Constructor arguments are inferred from implementation.
obj = PhaseLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

CombinedComplexLoss class

Combined magnitude and phase loss for complex-valued tensors. Args: magnitude_weight (float): Weight for magnitude loss. Default: 1.0 phase_weight (float): Weight for phase loss. Default: 1.0 reduction (str): Reduction method. Default: 'mean'

File location: sarpyx/utils/losses.py:404

Class Signature

class CombinedComplexLoss

Constructor Parameters

Return Type

CombinedComplexLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import CombinedComplexLoss

obj = CombinedComplexLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

CombinedComplexLoss.forward method

Compute combined magnitude and phase loss.

File location: sarpyx/utils/losses.py:429

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-Predicted complex values of shape (N, ...)
targettorch.Tensoryes-Target complex values of shape (N, ...)

Return Type

torch.Tensor

torch.Tensor: Combined loss

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import CombinedComplexLoss

# Constructor arguments are inferred from implementation.
obj = CombinedComplexLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

MagnitudeL1Loss class

inferred from implementation.

File location: sarpyx/utils/losses.py:449

Class Signature

class MagnitudeL1Loss

Constructor Parameters

Return Type

MagnitudeL1Loss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import MagnitudeL1Loss

obj = MagnitudeL1Loss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

MagnitudeL1Loss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:450

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import MagnitudeL1Loss

# Constructor arguments are inferred from implementation.
obj = MagnitudeL1Loss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

LogMagMSELoss class

MSE on log(1 + alpha*|z|) to preserve dynamic range.

File location: sarpyx/utils/losses.py:457

Class Signature

class LogMagMSELoss

Constructor Parameters

Return Type

LogMagMSELoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import LogMagMSELoss

obj = LogMagMSELoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

LogMagMSELoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:462

Signature

forward(self, prediction, target)

Parameters

ParameterTypeRequiredDefaultDescription
predictioninferred from implementationyes-inferred from implementation.
targetinferred from implementationyes-inferred from implementation.

Return Type

inferred from implementation

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import LogMagMSELoss

# Constructor arguments are inferred from implementation.
obj = LogMagMSELoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

PhaseLossMasked class

Angular difference, weighted by target magnitude to avoid tiny-mag noise. Expects: - prediction and target either complex tensors (dtype=torch.cfloat / torch.cdouble) OR real tensors where the last dimension is size 2 and contains [real, imag], e.g. shape (B, L, 2). If your real tensors are (B, 2, L) adapt before calling.

File location: sarpyx/utils/losses.py:469

Class Signature

class PhaseLossMasked

Constructor Parameters

Return Type

PhaseLossMasked instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import PhaseLossMasked

obj = PhaseLossMasked(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

PhaseLossMasked.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:490

Signature

forward(self, pred: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import PhaseLossMasked

# Constructor arguments are inferred from implementation.
obj = PhaseLossMasked(...)  # inferred from implementation
result = obj.forward(pred=<pred>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

EdgeLoss class

inferred from implementation.

File location: sarpyx/utils/losses.py:528

Class Signature

class EdgeLoss

Constructor Parameters

Return Type

EdgeLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import EdgeLoss

obj = EdgeLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

EdgeLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:533

Signature

forward(self, pred, target)

Parameters

ParameterTypeRequiredDefaultDescription
predinferred from implementationyes-inferred from implementation.
targetinferred from implementationyes-inferred from implementation.

Return Type

inferred from implementation

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import EdgeLoss

# Constructor arguments are inferred from implementation.
obj = EdgeLoss(...)  # inferred from implementation
result = obj.forward(pred=<pred>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

SSIM1DLoss class

inferred from implementation.

File location: sarpyx/utils/losses.py:556

Class Signature

class SSIM1DLoss

Constructor Parameters

Return Type

SSIM1DLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import SSIM1DLoss

obj = SSIM1DLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

SSIM1DLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:570

Signature

forward(self, pred, target)

Parameters

ParameterTypeRequiredDefaultDescription
predinferred from implementationyes-inferred from implementation.
targetinferred from implementationyes-inferred from implementation.

Return Type

inferred from implementation

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import SSIM1DLoss

# Constructor arguments are inferred from implementation.
obj = SSIM1DLoss(...)  # inferred from implementation
result = obj.forward(pred=<pred>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

ComplexSSIMCombinedLoss class

inferred from implementation.

File location: sarpyx/utils/losses.py:627

Class Signature

class ComplexSSIMCombinedLoss

Constructor Parameters

Return Type

ComplexSSIMCombinedLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import ComplexSSIMCombinedLoss

obj = ComplexSSIMCombinedLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

ComplexSSIMCombinedLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:639

Signature

forward(self, pred, tgt)

Parameters

ParameterTypeRequiredDefaultDescription
predinferred from implementationyes-inferred from implementation.
tgtinferred from implementationyes-inferred from implementation.

Return Type

inferred from implementation

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import ComplexSSIMCombinedLoss

# Constructor arguments are inferred from implementation.
obj = ComplexSSIMCombinedLoss(...)  # inferred from implementation
result = obj.forward(pred=<pred>, tgt=<tgt>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

SplitRealImagLoss class

Lsplit = ||Re(X^) - Re(X)||^2 + ||Im(X^) - Im(X)||^2

File location: sarpyx/utils/losses.py:658

Class Signature

class SplitRealImagLoss

Constructor Parameters

Return Type

SplitRealImagLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import SplitRealImagLoss

obj = SplitRealImagLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

SplitRealImagLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:660

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import SplitRealImagLoss

# Constructor arguments are inferred from implementation.
obj = SplitRealImagLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

PolarLoss class

Lpolar = w_mag * |||X^| - |X|||^2 + w_phase * ||phase_diff||^2 Uses robust principal-value angle-difference.

File location: sarpyx/utils/losses.py:669

Class Signature

class PolarLoss

Constructor Parameters

Return Type

PolarLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import PolarLoss

obj = PolarLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

PolarLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:679

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import PolarLoss

# Constructor arguments are inferred from implementation.
obj = PolarLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

ComplexMSELoss class

LcMSE = ||X^ - X||^2 (complex squared error)

File location: sarpyx/utils/losses.py:693

Class Signature

class ComplexMSELoss

Constructor Parameters

Return Type

ComplexMSELoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import ComplexMSELoss

obj = ComplexMSELoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

ComplexMSELoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:695

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import ComplexMSELoss

# Constructor arguments are inferred from implementation.
obj = ComplexMSELoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

RobustComplexLoss class

Robust alternatives. Two modes: - 'quartic' -> sum |diff|^4 - 'logcosh' -> sum log(cosh(|diff|))

File location: sarpyx/utils/losses.py:703

Class Signature

class RobustComplexLoss

Constructor Parameters

Return Type

RobustComplexLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import RobustComplexLoss

obj = RobustComplexLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

RobustComplexLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:714

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import RobustComplexLoss

# Constructor arguments are inferred from implementation.
obj = RobustComplexLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

LogMagnitudeLoss class

Llogmag = || ln|X^| - ln|X| ||^2 Avoids -inf at zeros with eps.

File location: sarpyx/utils/losses.py:727

Class Signature

class LogMagnitudeLoss

Constructor Parameters

Return Type

LogMagnitudeLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import LogMagnitudeLoss

obj = LogMagnitudeLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

LogMagnitudeLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:736

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import LogMagnitudeLoss

# Constructor arguments are inferred from implementation.
obj = LogMagnitudeLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

SymmetryConstrainedLoss class

L = ||X^ - X||^2 + lambda * ||X^ - S(X^)||^2, where S is a symmetry operator (callable). If S is None, defaults to conjugate transpose along last two dims (Hermitian)

File location: sarpyx/utils/losses.py:743

Class Signature

class SymmetryConstrainedLoss

Constructor Parameters

Return Type

SymmetryConstrainedLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import SymmetryConstrainedLoss

obj = SymmetryConstrainedLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (2)

SymmetryConstrainedLoss.default_symmetry method

inferred from implementation.

File location: sarpyx/utils/losses.py:753

Signature

default_symmetry(self, x: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
xtorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import SymmetryConstrainedLoss

# Constructor arguments are inferred from implementation.
obj = SymmetryConstrainedLoss(...)  # inferred from implementation
result = obj.default_symmetry(x=<x>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

SymmetryConstrainedLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:763

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import SymmetryConstrainedLoss

# Constructor arguments are inferred from implementation.
obj = SymmetryConstrainedLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

PolarimetricDecompositionLoss class

For PolSAR: expects predictions and targets as sequence/tuple/list of complex components cpred_i. Usage: pass prediction as tensor with extra channel dim or a sequence of component tensors. Simple implementation supports two styles: - prediction/target: (B, C, H, W) complex with C = number of polarimetric channels - or prediction/target: list/tuple of length C of (B, H, W) complex tensors

File location: sarpyx/utils/losses.py:771

Class Signature

class PolarimetricDecompositionLoss

Constructor Parameters

Return Type

PolarimetricDecompositionLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import PolarimetricDecompositionLoss

obj = PolarimetricDecompositionLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

PolarimetricDecompositionLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:782

Signature

forward(self, prediction, target)

Parameters

ParameterTypeRequiredDefaultDescription
predictioninferred from implementationyes-inferred from implementation.
targetinferred from implementationyes-inferred from implementation.

Return Type

inferred from implementation

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import PolarimetricDecompositionLoss

# Constructor arguments are inferred from implementation.
obj = PolarimetricDecompositionLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

PowerLoss class

Lpower = (sum |X^|^2 - sum |X|^2)^2 Computes global power difference per-batch.

File location: sarpyx/utils/losses.py:802

Class Signature

class PowerLoss

Constructor Parameters

Return Type

PowerLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import PowerLoss

obj = PowerLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

PowerLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:810

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import PowerLoss

# Constructor arguments are inferred from implementation.
obj = PowerLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

SpeckleNLLLoss class

Negative log-likelihood for circular complex Gaussian speckle: p(x | mu, sigma^2) = 1/(pi sigma^2) * exp(-|x-mu|^2 / sigma^2) NLL per pixel: ln(pi sigma^2) + |x-mu|^2 / sigma^2 Two modes: - fixed_sigma: scalar sigma provided - predicted_sigma: second output channel gives variance estimate prediction can be: - complex tensor (mu) and sigma given as float - tuple (mu, sigma_pred) where sigma_pred is real non-negative (same shape as mu magnitude)

File location: sarpyx/utils/losses.py:820

Class Signature

class SpeckleNLLLoss

Constructor Parameters

Return Type

SpeckleNLLLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import SpeckleNLLLoss

obj = SpeckleNLLLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

SpeckleNLLLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:837

Signature

forward(self, prediction, target)

Parameters

ParameterTypeRequiredDefaultDescription
predictioninferred from implementationyes-inferred from implementation.
targetinferred from implementationyes-inferred from implementation.

Return Type

inferred from implementation

inferred from implementation.

Exceptions

  • ValueError

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import SpeckleNLLLoss

# Constructor arguments are inferred from implementation.
obj = SpeckleNLLLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

May raise: ValueError.

ComplexTVLoss class

Isotropic TV on complex-valued image: sum_{m,n} (|X_{m+1,n} - X_{m,n}| + |X_{m,n+1} - X_{m,n}|) Implemented with magnitude of complex differences.

File location: sarpyx/utils/losses.py:856

Class Signature

class ComplexTVLoss

Constructor Parameters

Return Type

ComplexTVLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import ComplexTVLoss

obj = ComplexTVLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

ComplexTVLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:862

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor=None) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.TensornoNoneinferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

  • ValueError

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import ComplexTVLoss

# Constructor arguments are inferred from implementation.
obj = ComplexTVLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>)

Edge Cases

May raise: ValueError. Includes optional parameters with implementation-defined fallback behavior.

GradientMatchingLoss class

Lgrad = ||grad |X^| - grad |X|||^2 + ||grad angle(X^) - grad angle(X)||^2 Uses simple finite differences to compute gradients (sobel-ish could be added).

File location: sarpyx/utils/losses.py:892

Class Signature

class GradientMatchingLoss

Constructor Parameters

Return Type

GradientMatchingLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import GradientMatchingLoss

obj = GradientMatchingLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

GradientMatchingLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:914

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import GradientMatchingLoss

# Constructor arguments are inferred from implementation.
obj = GradientMatchingLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

PhaseSmoothnessLoss class

Penalize Laplacian (second-order differences) of the phase to encourage smooth phase. Lphase = sum (Delta angle(Xhat))^2

File location: sarpyx/utils/losses.py:935

Class Signature

class PhaseSmoothnessLoss

Constructor Parameters

Return Type

PhaseSmoothnessLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import PhaseSmoothnessLoss

obj = PhaseSmoothnessLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

PhaseSmoothnessLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:943

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor=None) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.TensornoNoneinferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import PhaseSmoothnessLoss

# Constructor arguments are inferred from implementation.
obj = PhaseSmoothnessLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>)

Edge Cases

Includes optional parameters with implementation-defined fallback behavior.

GANLoss class

Standard GAN loss wrappers. Expects discriminator outputs. mode: - 'vanilla' -> BCE with logits - 'hinge' -> hinge loss The forward signature: - forward(pred_fake_logits, pred_real_logits=None) or provide labels tensors.

File location: sarpyx/utils/losses.py:960

Class Signature

class GANLoss

Constructor Parameters

Return Type

GANLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import GANLoss

obj = GANLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (3)

GANLoss.fake_loss method

inferred from implementation.

File location: sarpyx/utils/losses.py:976

Signature

fake_loss(self, pred_fake: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
pred_faketorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import GANLoss

# Constructor arguments are inferred from implementation.
obj = GANLoss(...)  # inferred from implementation
result = obj.fake_loss(pred_fake=<pred_fake>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

GANLoss.real_loss method

inferred from implementation.

File location: sarpyx/utils/losses.py:984

Signature

real_loss(self, pred_real: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
pred_realtorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import GANLoss

# Constructor arguments are inferred from implementation.
obj = GANLoss(...)  # inferred from implementation
result = obj.real_loss(pred_real=<pred_real>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

GANLoss.forward method

which: 'both', 'gen' (generator wants fake to be real), 'disc' (compute discriminator loss using pred_real and pred_fake)

File location: sarpyx/utils/losses.py:991

Signature

forward(self, pred_fake: torch.Tensor, pred_real: Optional[torch.Tensor]=None, which: str='both') -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
pred_faketorch.Tensoryes-inferred from implementation.
pred_realOptional[torch.Tensor]noNoneinferred from implementation.
whichstrno'both'inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

  • ValueError

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import GANLoss

# Constructor arguments are inferred from implementation.
obj = GANLoss(...)  # inferred from implementation
result = obj.forward(pred_fake=<pred_fake>)

Edge Cases

May raise: ValueError. Includes optional parameters with implementation-defined fallback behavior.

FeatureLoss class

Lfeat = ||Phi(X^) - Phi(X)||^2 feature_extractor should accept complex or real tensors and produce a real feature tensor. Provide preprocess_fn if conversion from complex to feature extractor input is needed.

File location: sarpyx/utils/losses.py:1012

Class Signature

class FeatureLoss

Constructor Parameters

Return Type

FeatureLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import FeatureLoss

obj = FeatureLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

FeatureLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:1023

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import FeatureLoss

# Constructor arguments are inferred from implementation.
obj = FeatureLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

CompositeLoss class

Composite weighted combination of sub-losses: L = sum_i alpha_i * Li sub_losses: sequence of (weight, loss_instance)

File location: sarpyx/utils/losses.py:1032

Class Signature

class CompositeLoss

Constructor Parameters

Return Type

CompositeLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import CompositeLoss

obj = CompositeLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (1)

CompositeLoss.forward method

inferred from implementation.

File location: sarpyx/utils/losses.py:1044

Signature

forward(self, prediction: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predictiontorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import CompositeLoss

# Constructor arguments are inferred from implementation.
obj = CompositeLoss(...)  # inferred from implementation
result = obj.forward(prediction=<prediction>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

MultiDomainSARLoss class

Multi-domain loss for physics-aware SAR compression. Combines spatial, frequency, phase, sparsity, rate, SSIM, perceptual, and edge losses. ENHANCED VERSION (Oct 2024): Added structure-preserving losses for better detail retention. Designed for use with PhysicsAwareSpatialTransformer model. Args: spatial_weight: Weight for spatial domain loss (default: 1.0) frequency_weight: Weight for frequency domain loss (default: 0.3) phase_weight: Weight for phase consistency loss (default: 0.5) sparsity_weight: Weight for sparsity penalty (default: 0.01) rate_weight: Weight for rate penalty (default: 0.01) ssim_weight: Weight for SSIM loss (default: 0.0) perceptual_weight: Weight for perceptual loss (default: 0.0) edge_weight: Weight for edge-preserving loss (default: 0.0) reduction: Loss reduction method ('mean', 'sum', 'none')

File location: sarpyx/utils/losses.py:1063

Class Signature

class MultiDomainSARLoss

Constructor Parameters

Return Type

MultiDomainSARLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import MultiDomainSARLoss

obj = MultiDomainSARLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (7)

MultiDomainSARLoss.complex_mse method

Complex MSE: |pred - target|^2

File location: sarpyx/utils/losses.py:1105

Signature

complex_mse(self, pred: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import MultiDomainSARLoss

# Constructor arguments are inferred from implementation.
obj = MultiDomainSARLoss(...)  # inferred from implementation
result = obj.complex_mse(pred=<pred>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

MultiDomainSARLoss.frequency_domain_loss method

MSE in azimuth frequency domain.

File location: sarpyx/utils/losses.py:1109

Signature

frequency_domain_loss(self, pred: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import MultiDomainSARLoss

# Constructor arguments are inferred from implementation.
obj = MultiDomainSARLoss(...)  # inferred from implementation
result = obj.frequency_domain_loss(pred=<pred>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

MultiDomainSARLoss.phase_consistency_loss method

Phase loss using complex inner product.

File location: sarpyx/utils/losses.py:1128

Signature

phase_consistency_loss(self, pred: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import MultiDomainSARLoss

# Constructor arguments are inferred from implementation.
obj = MultiDomainSARLoss(...)  # inferred from implementation
result = obj.phase_consistency_loss(pred=<pred>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

MultiDomainSARLoss.ssim_loss method

Structural Similarity Index (SSIM) loss for structure preservation.

File location: sarpyx/utils/losses.py:1165

Signature

ssim_loss(self, pred: torch.Tensor, target: torch.Tensor, window_size: int=11) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.
window_sizeintno11inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import MultiDomainSARLoss

# Constructor arguments are inferred from implementation.
obj = MultiDomainSARLoss(...)  # inferred from implementation
result = obj.ssim_loss(pred=<pred>, target=<target>)

Edge Cases

Includes optional parameters with implementation-defined fallback behavior.

MultiDomainSARLoss.edge_preserving_loss method

Edge-preserving loss using gradient differences.

File location: sarpyx/utils/losses.py:1210

Signature

edge_preserving_loss(self, pred: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import MultiDomainSARLoss

# Constructor arguments are inferred from implementation.
obj = MultiDomainSARLoss(...)  # inferred from implementation
result = obj.edge_preserving_loss(pred=<pred>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

MultiDomainSARLoss.perceptual_loss method

Simple perceptual loss using multi-scale gradients.

File location: sarpyx/utils/losses.py:1236

Signature

perceptual_loss(self, pred: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import MultiDomainSARLoss

# Constructor arguments are inferred from implementation.
obj = MultiDomainSARLoss(...)  # inferred from implementation
result = obj.perceptual_loss(pred=<pred>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

MultiDomainSARLoss.forward method

Compute multi-domain loss.

File location: sarpyx/utils/losses.py:1269

Signature

forward(self, pred: torch.Tensor, target: torch.Tensor, aux_outputs: Optional[dict]=None) -> Union[torch.Tensor, Tuple[torch.Tensor, dict]]

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-Predicted tensor [B, H, W, 2] or complex format
targettorch.Tensoryes-Ground truth tensor [B, H, W, 2] or complex format
aux_outputsOptional[dict]noNoneOptional dictionary with 'sparsity' and 'rate' from model

Return Type

Union[torch.Tensor, Tuple[torch.Tensor, dict]]

If aux_outputs is None: scalar loss Otherwise: (loss, loss_dict) tuple with individual components

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import MultiDomainSARLoss

# Constructor arguments are inferred from implementation.
obj = MultiDomainSARLoss(...)  # inferred from implementation
result = obj.forward(pred=<pred>, target=<target>)

Edge Cases

Includes optional parameters with implementation-defined fallback behavior. Documented return may be None for some execution paths.

SARFocusingLoss class

Comprehensive SAR focusing loss combining reconstruction, focus quality, distribution matching, and total variation. IMPROVED VERSION with better scaling and normalization for stable training. Full combined loss: L = λ_rec * L_rec + λ_focus * L_focus + λ_dist * L_dist + λ_tv * L_tv where: L_rec = Reconstruction loss (L1, L2, or complex MSE to ground truth) L_focus = Focus quality metric (normalized variance, entropy, or contrast) L_dist = Distribution matching (statistical moments or histogram L1) L_tv = Total variation regularization (suppress speckle artifacts) Args: lambda_rec (float): Weight for reconstruction loss. Default: 1.0 lambda_focus (float): Weight for focus quality. Default: 0.1 lambda_dist (float): Weight for distribution matching. Default: 0.5 lambda_tv (float): Weight for total variation. Default: 0.01 rec_loss_type (str): Type of reconstruction loss ('mse', 'mae', 'complex_mse'). Default: 'complex_mse' focus_metric (str): Focus quality metric ('variance', 'entropy', 'contrast', 'structure'/'ssim'). Default: 'contrast' dist_metric (str): Distribution matching metric ('moments', 'histogram', 'none'). Default: 'moments' use_tv (bool): Whether to use total variation regularization. Default: True use_adaptive_weights (bool): Dynamically balance loss components. Default: True reduction (str): Loss reduction method. Default: 'mean' Hyperparameter tips: - λ_rec = 1.0 (baseline) - λ_focus = 0.1-0.5 (higher than before due to normalization) - λ_dist = 0.5-2.0 (distribution matching is now more important) - λ_tv = 0.01-0.1 (can be higher due to magnitude-based computation)

File location: sarpyx/utils/losses.py:1348

Class Signature

class SARFocusingLoss

Constructor Parameters

Return Type

SARFocusingLoss instances.

Exceptions

Construction/runtime exceptions are inferred from implementation and method-level documentation.

Side Effects

See method-level side effects below.

Example Usage

from sarpyx.utils.losses import SARFocusingLoss

obj = SARFocusingLoss(...)  # inferred from implementation

Edge Cases

No class-level edge-case section is explicitly documented; rely on method-level checks and raised exceptions.

Public Methods (5)

SARFocusingLoss.reconstruction_loss method

Forward-model reconstruction or L1/L2 to ground truth.

File location: sarpyx/utils/losses.py:1465

Signature

reconstruction_loss(self, pred: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import SARFocusingLoss

# Constructor arguments are inferred from implementation.
obj = SARFocusingLoss(...)  # inferred from implementation
result = obj.reconstruction_loss(pred=<pred>, target=<target>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

SARFocusingLoss.focus_quality_loss method

Focus quality metric based on spatial concentration.

File location: sarpyx/utils/losses.py:1469

Signature

focus_quality_loss(self, pred: torch.Tensor, target: torch.Tensor=None) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.
targettorch.TensornoNoneinferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

  • ValueError

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import SARFocusingLoss

# Constructor arguments are inferred from implementation.
obj = SARFocusingLoss(...)  # inferred from implementation
result = obj.focus_quality_loss(pred=<pred>)

Edge Cases

May raise: ValueError. Includes optional parameters with implementation-defined fallback behavior.

SARFocusingLoss.distribution_matching_loss method

Distribution matching loss - IMPROVED for better gradients.

File location: sarpyx/utils/losses.py:1722

Signature

distribution_matching_loss(self, pred: torch.Tensor, target: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.
targettorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

  • ValueError

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import SARFocusingLoss

# Constructor arguments are inferred from implementation.
obj = SARFocusingLoss(...)  # inferred from implementation
result = obj.distribution_matching_loss(pred=<pred>, target=<target>)

Edge Cases

May raise: ValueError.

SARFocusingLoss.total_variation_loss method

Total variation regularization to suppress speckle artifacts.

File location: sarpyx/utils/losses.py:2055

Signature

total_variation_loss(self, pred: torch.Tensor) -> torch.Tensor

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-inferred from implementation.

Return Type

torch.Tensor

inferred from implementation.

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import SARFocusingLoss

# Constructor arguments are inferred from implementation.
obj = SARFocusingLoss(...)  # inferred from implementation
result = obj.total_variation_loss(pred=<pred>)

Edge Cases

No explicit edge-case section found; behavior is inferred from implementation.

SARFocusingLoss.forward method

Compute combined SAR focusing loss with ADAPTIVE WEIGHTING.

File location: sarpyx/utils/losses.py:2092

Signature

forward(self, pred: torch.Tensor, target: torch.Tensor, return_components: bool=False) -> Union[torch.Tensor, Tuple[torch.Tensor, dict]]

Parameters

ParameterTypeRequiredDefaultDescription
predtorch.Tensoryes-Predicted focused SAR image
targettorch.Tensoryes-Ground truth (focused or reference)
return_componentsboolnoFalseIf True, return dictionary with individual loss components

Return Type

Union[torch.Tensor, Tuple[torch.Tensor, dict]]

If return_components=False: scalar total loss If return_components=True: (total_loss, loss_dict)

Exceptions

None explicitly documented; inferred from implementation.

Side Effects

  • inferred from implementation

Example Usage

from sarpyx.utils.losses import SARFocusingLoss

# Constructor arguments are inferred from implementation.
obj = SARFocusingLoss(...)  # inferred from implementation
result = obj.forward(pred=<pred>, target=<target>)

Edge Cases

Includes optional parameters with implementation-defined fallback behavior.