Spec-Zone.ru › TensorFlow 2.4

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 должны иметь одинаковую форму, в противном случае при создании операции выбрасывается ValueError.

Примечание: Substr поддерживает векторизацию до двух измерений. Подробнее о векторизации здесь

Примеры

Использование скалярных 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']]

Векторизация 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']]

Векторизация 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.

© 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.3/api_docs/python/tf/compat/v1/strings/substr

Spec-Zone.ru

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