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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
x | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
x | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
a | torch.Tensor | yes | - | inferred from implementation. |
b | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
window_size | int | yes | - | inferred from implementation. |
sigma | Optional[float] | no | None | inferred from implementation. |
device | inferred from implementation | no | None | inferred from implementation. |
dtype | inferred from implementation | no | torch.float32 | 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 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
loss_name | str | yes | - | Name of the loss function |
**kwargs | inferred from implementation | no | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | Predicted values |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | Predicted values of shape (N, ...) |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | Predicted values of shape (B, ..., C) or (B, ...) Can be complex-valued or real-valued |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | Predicted values of shape (N, ...) |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | Predicted values of shape (N, ...) |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | Predicted logits of shape (N, C) |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | Predicted complex values of shape (N, ...) |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | Predicted complex values of shape (N, ...) |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | Predicted complex values of shape (N, ...) |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | Predicted complex values of shape (N, ...) |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | inferred from implementation | yes | - | inferred from implementation. |
target | inferred from implementation | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | inferred from implementation | yes | - | inferred from implementation. |
target | inferred from implementation | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | inferred from implementation | yes | - | inferred from implementation. |
target | inferred from implementation | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | inferred from implementation | yes | - | inferred from implementation. |
tgt | inferred from implementation | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
x | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | inferred from implementation | yes | - | inferred from implementation. |
target | inferred from implementation | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | inferred from implementation | yes | - | inferred from implementation. |
target | inferred from implementation | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | no | None | inferred 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | no | None | 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 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred_fake | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred_real | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred_fake | torch.Tensor | yes | - | inferred from implementation. |
pred_real | Optional[torch.Tensor] | no | None | inferred from implementation. |
which | str | no | '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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prediction | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | inferred from implementation. |
window_size | int | no | 11 | 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.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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | Predicted tensor [B, H, W, 2] or complex format |
target | torch.Tensor | yes | - | Ground truth tensor [B, H, W, 2] or complex format |
aux_outputs | Optional[dict] | no | None | Optional 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | no | None | 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.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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | inferred from implementation. |
target | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
pred | torch.Tensor | yes | - | Predicted focused SAR image |
target | torch.Tensor | yes | - | Ground truth (focused or reference) |
return_components | bool | no | False | If 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.