unilab.algos.torch.common.stability

Numerical stability utilities for RL training.

Functions

check_nan_loss(loss, default_metrics)

Check if loss contains NaN or Inf values.

clip_gradients(parameters[, max_norm])

Clip gradients by global norm.

safe_tensor(tensor[, nan_value, clamp_range])

Make tensor numerically safe by clamping and replacing NaN values.

unilab.algos.torch.common.stability.check_nan_loss(loss, default_metrics)[source]

Check if loss contains NaN or Inf values.

Parameters:
  • loss (Tensor) – Loss tensor to check

  • default_metrics (dict) – Default metric values to return if NaN detected

Return type:

tuple[Tensor | None, dict | None]

Returns:

(loss, None) if valid, (None, nan_metrics) if invalid

unilab.algos.torch.common.stability.clip_gradients(parameters, max_norm=10.0)[source]

Clip gradients by global norm.

Parameters:
  • parameters – Model parameters

  • max_norm (float) – Maximum gradient norm

unilab.algos.torch.common.stability.safe_tensor(tensor, nan_value=0.0, clamp_range=(-10.0, 10.0))[source]

Make tensor numerically safe by clamping and replacing NaN values.

Parameters:
  • tensor (Tensor) – Input tensor

  • nan_value (float) – Value to replace NaN with

  • clamp_range (tuple) – (min, max) range to clamp values

Return type:

Tensor

Returns:

Safe tensor