Функция slice
Функция slice извлекает часть тензора,
начиная с указанных позиций и забирая заданное
количество элементов по каждому измерению.
Первым параметром передается исходный тензор
input, вторым - список начальных индексов
begin, третьим - список размеров среза
size. Если размер равен -1,
то элементы берутся до конца измерения.
Синтаксис
tf.slice(input_, begin, size, [name])
Пример
Давайте извлечем срез из одномерного тензора,
начиная с индекса 1 и длиной 3:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
res = tf.slice(t, [1], [3])
print(res)
Результат выполнения кода:
tf.Tensor([2 3 4], shape=(3,), dtype=int32)
Пример
Давайте извлечем срез из двумерного тензора по обеим осям:
import tensorflow as tf
t = tf.constant([[1, 2, 3], [4, 5, 6]])
res = tf.slice(t, [0, 1], [2, 2])
print(res)
Результат выполнения кода:
tf.Tensor(
[[2 3]
[5 6]], shape=(2, 2), dtype=int32)
Пример
Давайте используем размер -1,
чтобы забрать все элементы до конца измерения:
import tensorflow as tf
t = tf.constant([1, 2, 3, 4, 5])
res = tf.slice(t, [2], [-1])
print(res)
Результат выполнения кода:
tf.Tensor([3 4 5], shape=(3,), dtype=int32)
Смотрите также
-
функцию
strided_slice,
которая извлекает срез с заданным шагом -
функцию
gather,
которая собирает элементы по индексам -
функцию
split,
которая разбивает тензор на части -
функцию
boolean_mask,
которая выбирает элементы по булевой маске