Spec-Zone.ru › TensorFlow

tf.compat.v1.substr

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

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

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

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

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

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

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

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

Spec-Zone.ru

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