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']
| Вызывает исключения | |
|---|---|
|
| Аргументы | |
|---|---|
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