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

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

See the guide: Training > Decaying the learning rate

Piecewise constant from boundaries and interval values.

Example: use a learning rate that's 1.0 for the first 100000 steps, 0.5 for steps 100001 to 110000, 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.train.piecewise_constant(global_step, boundaries, values)

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


  • x: A 0-D scalar Tensor. Must be one of the following types: float32, float64, uint8, int8, int16, int32, int64.
  • boundaries: A list of Tensors or ints or floats with strictly increasing entries, and with all elements having the same type as x.
  • values: A list of Tensors or floats orints that specifies the values for the intervals defined byboundaries. It should have one more element thanboundaries`, and all elements should have the same type.
  • name: A string. Optional name of the operation. Defaults to 'PiecewiseConstant'.


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].


  • ValueError: if types of x and buondaries do not match, or types of all values do not match.

Defined in tensorflow/python/training/