View source on GitHub
|
Applies exponential decay to the learning rate.
tf.compat.v1.train.exponential_decay(
learning_rate,
global_step,
decay_steps,
decay_rate,
staircase=False,
name=None
)
| Used in the guide | Used in the tutorials |
|---|---|
When training a model, it is often recommended to lower the learning rate as
the training progresses. This function applies an exponential decay function
to a provided initial learning rate. It requires a global_step value to
compute the decayed learning rate. You can just pass a TensorFlow variable
that you increment at each training step.
The function returns the decayed learning rate. It is computed as:
decayed_learning_rate = learning_rate *
decay_rate ^ (global_step / decay_steps)
If the argument staircase is True, then global_step / decay_steps is an
integer division and the decayed learning rate follows a staircase function.
Example: decay every 100000 steps with a base of 0.96:
...
global_step = tf.Variable(0, trainable=False)
starter_learning_rate = 0.1
learning_rate = tf.compat.v1.train.exponential_decay(starter_learning_rate,
global_step,
100000, 0.96, staircase=True)
# Passing global_step to minimize() will increment it at each step.
learning_step = (
tf.compat.v1.train.GradientDescentOptimizer(learning_rate)
.minimize(...my loss..., global_step=global_step)
)
learning_rate
float32 or float64 Tensor or a Python number.
The initial learning rate.
global_step
int32 or int64 Tensor or a Python number. Global
step to use for the decay computation. Must not be negative.
decay_steps
int32 or int64 Tensor or a Python number. Must
be positive. See the decay computation above.
decay_rate
float32 or float64 Tensor or a Python number.
The decay rate.
staircase
True decay the learning rate at discrete intervals
name
Tensor of the same type as learning_rate. The decayed
learning rate.
ValueError
global_step is not supplied.
When eager execution is enabled, this function returns a function which in turn returns the decayed learning rate Tensor. This can be useful for changing the learning rate value across different invocations of optimizer functions.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2024-04-26 UTC.