РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pytfSpSqRg 66 of 89 menu
◀ ▶

Рваный тензор в TensorFlow

Обычный тензор требует, чтобы все строки в таблице имели одну длину. В тексте и списках событий длина строк часто разная. Рваный тензор хранит каждую строку отдельно и не тратит память на выравнивание нулями.

Класс RaggedTensor задаёт данные как набор строк переменной длины. Создать такой объект можно из списка списков через фабрику ragged.constant. Форма показывает число строк и нефиксированную длину по второй оси.

Соберём две строки разной длины и выведем форму и плотный вид с добивкой нулями:

import tensorflow as tf rows = tf.ragged.constant([[4, 5], [1, 2, 3]]) print(rows.shape) print(rows.to_tensor()) # выведет (2, None) # выведет [[4 5 0] [1 2 3]]

При переводе в обычный тензор короткую строку дополняют нулями до длины самой длинной строки в наборе. Число строк при этом не меняется:

import tensorflow as tf rows = tf.ragged.constant([[9], [7, 8, 6]]) dense = rows.to_tensor() print(dense.shape)

Задайте три строки [1], [2, 3] и [4, 5, 6, 7] в одном рваном наборе. Выведите форму объекта.

Создайте рваный набор из строк [0, 1] и [2]. Переведите его в плотный тензор и выведите форму результата.

Соберите две строки длины 5 и 2 из целых чисел. Выведите плотный тензор и укажите длину второй оси в форме.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить