Функция strings.bytes_split
Функция strings.bytes_split применяется к строковым тензорам и разделяет каждую строку на отдельные байты. Первым параметром функция принимает строковый тензор или скалярную строку. Вторым необязательным параметром можно передать имя операции. В результате работы возвращается тензор, в котором каждая исходная строка разбита на последовательность байтов. Если строки имеют разную длину, тензор дополняется пустыми строками до максимальной длины.
Синтаксис
tf.strings.bytes_split(input, [name])
Пример
Давайте разделим строку 'abcde' на отдельные байты:
import tensorflow as tf
t = tf.constant('abcde')
res = tf.strings.bytes_split(t)
print(res)
Результат выполнения кода:
tf.Tensor([b'a' b'b' b'c' b'd' b'e'], shape=(5,), dtype=string)
Пример
Давайте разделим тензор из нескольких строк разной длины:
import tensorflow as tf
t = tf.constant(['abcde', 'model.keras'])
res = tf.strings.bytes_split(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[[b'a' b'b' b'c' b'd' b'e' b'' b'' b'' b'' b'' b'']
[b'm' b'o' b'd' b'e' b'l' b'.' b'k' b'e' b'r' b'a' b's']],
shape=(2, 11), dtype=string)
Пример
Давайте разделим строку с кириллицей, чтобы увидеть, как байты представляют многобайтовые символы:
import tensorflow as tf
t = tf.constant('привет')
res = tf.strings.bytes_split(t)
print(res)
Результат выполнения кода:
tf.Tensor(
[b'\xd0' b'\xbf' b'\xd1' b'\x80' b'\xd0' b'\xb8'
b'\xd0' b'\xb2' b'\xd0' b'\xb5' b'\xd1' b'\x82'],
shape=(12,), dtype=string)
Смотрите также
-
функцию
split,
которая разделяет строки по разделителю -
функцию
unicode_split,
которая разделяет строки на символы Unicode -
функцию
join,
которая объединяет строки в одну -
функцию
length,
которая вычисляет длину строк