nsl.lib.decay_over_time

Returns a decayed value of init_value over time.

When training a model with a regularizer, the objective function can be formulated as the following:

\[objective = \lambda_1 * loss + \lambda_2 * regularization\]

This function can be used for three cases:

  1. Incrementally diminishing the importance of the loss term, by applying a decay function to the \(\lambda_1\) over time. We'll denote this by writing \(\lambda_1\) = decay_over_time(init_value).
  2. Incrementally increasing the importance of the regularization term, by setting \(\lambda_2\) = init_value - decay_over_time(init_value).
  3. Combining the above two cases, namely, setting \(\lambda_1\) = decay_over_time(init_value) and \(\lambda_2\) = init_value - decay_over_time(init_value).

This function requires a global_step value to compute the decayed value.

global_step A scalar int32 or int64 Tensor or a Python number. Must be positive.
decay_config A nsl.configs.DecayConfig for computing the decay value.
init_value A scalar Tensor to set the initial value to be decayed.

A scalar float Tensor.