View source on GitHub |
Returns a RaggedTensor
containing the specified sequences of numbers.
tf.ragged.range( starts, limits=None, deltas=1, dtype=None, name=None, row_splits_dtype=tf.dtypes.int64 )
Each row of the returned RaggedTensor
contains a single sequence:
ragged.range(starts, limits, deltas)[i] == tf.range(starts[i], limits[i], deltas[i])
If start[i] < limits[i] and deltas[i] > 0
, then output[i]
will be an empty list. Similarly, if start[i] > limits[i] and deltas[i] < 0
, then output[i]
will be an empty list. This behavior is consistent with the Python range
function, but differs from the tf.range
op, which returns an error for these cases.
tf.ragged.range([3, 5, 2]).to_list() [[0, 1, 2], [0, 1, 2, 3, 4], [0, 1]] tf.ragged.range([0, 5, 8], [3, 3, 12]).to_list() [[0, 1, 2], [], [8, 9, 10, 11]] tf.ragged.range([0, 5, 8], [3, 3, 12], 2).to_list() [[0, 2], [], [8, 10]]
The input tensors starts
, limits
, and deltas
may be scalars or vectors. The vector inputs must all have the same size. Scalar inputs are broadcast to match the size of the vector inputs.
Args | |
---|---|
starts | Vector or scalar Tensor . Specifies the first entry for each range if limits is not None ; otherwise, specifies the range limits, and the first entries default to 0 . |
limits | Vector or scalar Tensor . Specifies the exclusive upper limits for each range. |
deltas | Vector or scalar Tensor . Specifies the increment for each range. Defaults to 1 . |
dtype | The type of the elements of the resulting tensor. If not specified, then a value is chosen based on the other args. |
name | A name for the operation. |
row_splits_dtype | dtype for the returned RaggedTensor 's row_splits tensor. One of tf.int32 or tf.int64 . |
Returns | |
---|---|
A RaggedTensor of type dtype with ragged_rank=1 . |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/ragged/range