Метод from_row_lengths
Метод from_row_lengths класса RaggedTensor создает рваный тензор
из плоского списка значений и списка длин строк. Первым параметром
метод принимает одномерный тензор или список значений, которые нужно
разбить на строки. Вторым параметром передается одномерный тензор
или список целых чисел, задающий длину каждой строки. Третьим
необязательным параметром можно указать тип данных для тензора.
Метод удобен, когда данные уже представлены в плоском виде, а количество элементов в каждой строке известно заранее. Сумма всех длин строк должна совпадать с общим числом значений.
Синтаксис
tf.RaggedTensor.from_row_lengths(values, row_lengths, [dtype])
Пример
Давайте создадим рваный тензор из плоского списка значений
1, 2, 3, 4, 5, разбив его на строки
длиной 2, 3:
import tensorflow as tf
values = [1, 2, 3, 4, 5]
row_lengths = [2, 3]
t = tf.RaggedTensor.from_row_lengths(values, row_lengths)
print(t)
Результат выполнения кода:
<tf.RaggedTensor [[1, 2], [3, 4, 5]]>
Пример
Давайте создадим рваный тензор из строковых значений
'a', 'b', 'c', 'd', 'e',
разбив их на строки длиной 1, 3, 1:
import tensorflow as tf
values = ['a', 'b', 'c', 'd', 'e']
row_lengths = [1, 3, 1]
t = tf.RaggedTensor.from_row_lengths(values, row_lengths)
print(t)
Результат выполнения кода:
<tf.RaggedTensor [[b'a'], [b'b', b'c', b'd'], [b'e']]>
Пример
Давайте создадим рваный тензор, в котором одна из строк пустая.
Для этого передадим длины 3, 0, 2:
import tensorflow as tf
values = [1, 2, 3, 4, 5]
row_lengths = [3, 0, 2]
t = tf.RaggedTensor.from_row_lengths(values, row_lengths)
print(t)
Результат выполнения кода:
<tf.RaggedTensor [[1, 2, 3], [], [4, 5]]>
Пример
Давайте создадим рваный тензор с явно указанным типом данных
float32:
import tensorflow as tf
values = [1, 2, 3, 4, 5]
row_lengths = [2, 3]
t = tf.RaggedTensor.from_row_lengths(values, row_lengths, dtype=tf.float32)
print(t)
Результат выполнения кода:
<tf.RaggedTensor [[1.0, 2.0], [3.0, 4.0, 5.0]]>
Смотрите также
-
класс
RaggedTensor,
который представляет рваный тензор -
метод
from_row_splits,
который создает рваный тензор из границ строк -
метод
to_tensor,
который преобразует рваный тензор в обычный -
метод
to_list,
который преобразует рваный тензор в список