<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.21.0/tensorflow/python/ops/array_ops.py#L940-L992) |

Extracts a slice from a tensor.

#### View aliases


**Compat aliases for migration**

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

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

<br />

    tf.slice(
        input_, begin, size, name=None
    )

### Used in the notebooks

| Used in the guide | Used in the tutorials |
|---|---|
| - [Introduction to tensor slicing](https://www.tensorflow.org/guide/tensor_slicing) - [TFLite Authoring Tool](https://www.tensorflow.org/lite/guide/authoring) - [TensorFlow Lite Model Analyzer](https://www.tensorflow.org/lite/guide/model_analyzer) | - [Graph regularization for sentiment classification using synthesized graphs](https://www.tensorflow.org/neural_structured_learning/tutorials/graph_keras_lstm_imdb) |

See also [`tf.strided_slice`](https://www.tensorflow.org/api_docs/python/tf/strided_slice).

This operation extracts a slice of size `size` from a tensor `input_` starting
at the location specified by `begin`. The slice `size` is represented as a
tensor shape, where `size[i]` is the number of elements of the 'i'th dimension
of `input_` that you want to slice. The starting location (`begin`) for the
slice is represented as an offset in each dimension of `input_`. In other
words, `begin[i]` is the offset into the i'th dimension of `input_` that you
want to slice from.

Note that [`tf.Tensor.getitem`](https://www.tensorflow.org/api_docs/python/tf/Tensor#__getitem__) is typically a more pythonic way to
perform slices, as it allows you to write `foo[3:7, :-2]` instead of
`tf.slice(foo, [3, 0], [4, foo.get_shape()[1]-2])`.

`begin` is zero-based; `size` is one-based. If `size[i]` is -1,
all remaining elements in dimension i are included in the
slice. In other words, this is equivalent to setting:

`size[i] = input_.dim_size(i) - begin[i]`

This operation requires that:

`0 <= begin[i] <= begin[i] + size[i] <= Di for i in [0, n]`

#### For example:

    t = tf.constant([[[1, 1, 1], [2, 2, 2]],
                     [[3, 3, 3], [4, 4, 4]],
                     [[5, 5, 5], [6, 6, 6]]])
    tf.slice(t, [1, 0, 0], [1, 1, 3])  # [[[3, 3, 3]]]
    tf.slice(t, [1, 0, 0], [1, 2, 3])  # [[[3, 3, 3],
                                       #   [4, 4, 4]]]
    tf.slice(t, [1, 0, 0], [2, 1, 3])  # [[[3, 3, 3]],
                                       #  [[5, 5, 5]]]

<br />

<br />

<br />

| ## Args ||
|---|---|
| `input_` | A `Tensor`. |
| `begin` | An `int16`, `int32` or `int64` `Tensor`. |
| `size` | An `int16`, `int32` or `int64` `Tensor`. |
| `name` | A name for the operation (optional). |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| A `Tensor` the same type as `input_`. ||

<br />