# tf.compat.v1.train.piecewise_constant

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.14.0/tensorflow/python/keras/optimizer_v2/legacy_learning_rate_decay.py#L104-L182) |

Piecewise constant from boundaries and interval values.

#### View aliases


**Compat aliases for migration**

See
[Migration guide](https://www.tensorflow.org/guide/migrate) for
more details.

[`tf.compat.v1.train.piecewise_constant_decay`](https://www.tensorflow.org/api_docs/python/tf/compat/v1/train/piecewise_constant)

<br />

    tf.compat.v1.train.piecewise_constant(
        x, boundaries, values, name=None
    )

Example: use a learning rate that's 1.0 for the first 100001 steps, 0.5
for the next 10000 steps, and 0.1 for any additional steps.

    global_step = tf.Variable(0, trainable=False)
    boundaries = [100000, 110000]
    values = [1.0, 0.5, 0.1]
    learning_rate = tf.compat.v1.train.piecewise_constant(global_step, boundaries,
    values)

    # Later, whenever we perform an optimization step, we increment global_step.

<br />

<br />

<br />

| ## Args ||
|---|---|
| `x` | A 0-D scalar `Tensor`. Must be one of the following types: `float32`, `float64`, `uint8`, `int8`, `int16`, `int32`, `int64`. |
| `boundaries` | A list of `Tensor`s or `int`s or `float`s with strictly increasing entries, and with all elements having the same type as `x`. |
| `values` | A list of `Tensor`s or `float`s or `int`s that specifies the values for the intervals defined by `boundaries`. It should have one more element than `boundaries`, and all elements should have the same type. |
| `name` | A string. Optional name of the operation. Defaults to 'PiecewiseConstant'. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| A 0-D Tensor. Its value is `values[0]` when `x <= boundaries[0]`, `values[1]` when `x > boundaries[0]` and `x <= boundaries[1]`, ..., and values\[-1\] when `x > boundaries[-1]`. ||

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `ValueError` | if types of `x` and `boundaries` do not match, or types of all `values` do not match or the number of elements in the lists does not match. |

<br />

<br />

## eager compatibility

<br />

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.

<br />

<br />