Spec-Zone.ru › TensorFlow

tf.compat.v1.strings.substr

Возвращает подстроки Tensor строк.

tf.compat.v1.strings.substr(
    input, pos, len, name=None, unit='BYTE'
)

Для каждой строки во входном Tensor создает подстроку, начинающуюся с индекса pos и имеющую общую длину len.

Если len задает подстроку, выходящую за пределы длины входной строки, или если len является отрицательным, используются все возможные символы.

Отрицательное значение pos задает расстояние от конца строки в обратном направлении.

Если pos задает индекс, выходящий за пределы допустимого диапазона для любой входной строки, возникает исключение InvalidArgumentError.

pos и len должны иметь одинаковую форму, иначе при создании Op возникает исключение ValueError.

Примечание: Substr поддерживает broadcasting не более чем по двум измерениям. Подробнее о broadcasting — здесь

Примеры

Использование скалярных значений pos и len:

input = [b'Hello', b'World']
position = 1
length = 3

output = [b'ell', b'orl']

Использование pos и len с той же формой, что и у input:

input = [[b'ten', b'eleven', b'twelve'],
         [b'thirteen', b'fourteen', b'fifteen'],
         [b'sixteen', b'seventeen', b'eighteen']]
position = [[1, 2, 3],
            [1, 2, 3],
            [1, 2, 3]]
length =   [[2, 3, 4],
            [4, 3, 2],
            [5, 5, 5]]

output = [[b'en', b'eve', b'lve'],
          [b'hirt', b'urt', b'te'],
          [b'ixtee', b'vente', b'hteen']]

Broadcasting pos и len по input:

input = [[b'ten', b'eleven', b'twelve'],
         [b'thirteen', b'fourteen', b'fifteen'],
         [b'sixteen', b'seventeen', b'eighteen'],
         [b'nineteen', b'twenty', b'twentyone']]
position = [1, 2, 3]
length =   [1, 2, 3]

output = [[b'e', b'ev', b'lve'],
          [b'h', b'ur', b'tee'],
          [b'i', b've', b'hte'],
          [b'i', b'en', b'nty']]

Broadcasting input по pos и len:

input = b'thirteen'
position = [1, 5, 7]
length =   [3, 2, 1]

output = [b'hir', b'ee', b'n']
Вызывает исключения
  • ValueError: если первый аргумент нельзя преобразовать в тензор типа dtype string.
  • InvalidArgumentError: если индексы выходят за пределы допустимого диапазона.
  • ValueError: если pos и len имеют разную форму.
Аргументы
input Tensor типа string. Тензор строк
pos Tensor. Должен иметь один из следующих типов: int32, int64. Скаляр, задающий позицию первого символа каждой подстроки
len Tensor. Должен иметь тот же тип, что и pos. Скаляр, задающий количество символов в каждой подстроке
unit Необязательный string из: "BYTE", "UTF8_CHAR". По умолчанию — "BYTE". Единица измерения, используемая для создания подстроки. Возможные значения: "BYTE" (позиция и длина задаются в байтах) или "UTF8_CHAR" (кодовые точки Unicode в кодировке UTF-8). Значение по умолчанию — "BYTE". Результаты не определены, если используется unit=UTF8_CHAR, а строки input не содержат структурно корректный UTF-8.
name Имя операции (необязательно).
Возвращает
Tensor типа string.

© 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/compat/v1/strings/substr

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API