View source on GitHub |

Extracts a slice from a tensor.

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

See also `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.`

is typically a more pythonic way to perform slices, as it allows you to write **getitem**`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]`

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

Args | |
---|---|

`input_` | A `Tensor` . |

`begin` | An `int32` or `int64` `Tensor` . |

`size` | An `int32` or `int64` `Tensor` . |

`name` | A name for the operation (optional). |

Returns | |
---|---|

A `Tensor` the same type as `input_` . |

© 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/slice