tf.slice
Извлекает фрагмент из тензора.
tf.slice(
input_, begin, size, name=None
)
Используется в ноутбуках
| Используется в руководстве | Используется в учебниках |
|---|---|
См. также tf.strided_slice.
Данная операция извлекает фрагмент размером size из тензора input_, начиная с позиции, указанной в begin. Фрагмент size представлен как форма тензора, где size[i] — количество элементов 'i'-го измерения input_, которые требуется извлечь. Начальная позиция (begin) фрагмента представлена как смещение в каждом измерении input_. Другими словами, begin[i] — это смещение в 'i'-ом измерении input_, которое требуется извлечь.
Обратите внимание, что tf.Tensor.getitem обычно является более питоничным способом извлечения фрагментов, поскольку позволяет писать foo[3:7, :-2] вместо tf.slice(foo, [3, 0], [4, foo.get_shape()[1]-2]).
begin нулево-индексируемый; size — одноиндексируемый. Если size[i] равно -1, в фрагмент включаются все оставшиеся элементы измерения i. Другими словами, это эквивалентно установлению:
size[i] = input_.dim_size(i) - begin[i]
Для выполнения этой операции необходимо, чтобы:
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]]]
| Аргументы | |
|---|---|
input_ | Tensor. |
begin | int32 или int64 Tensor. |
size | int32 или int64 Tensor. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Tensor того же типа, что и input_. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/slice