Функция nest.pack_sequence_as
Функция nest.pack_sequence_as собирает плоскую
последовательность значений в структуру, которая
повторяет строение переданного шаблона. Первым
параметром передается структура-образец, вторым -
плоский список значений, которые нужно разложить
по этой структуре. Функция часто применяется вместе
с nest.flatten для обратного преобразования.
Синтаксис
tf.nest.pack_sequence_as(structure, flat_sequence)
Пример
Давайте упакуем плоский список чисел в структуру из двух вложенных списков:
import tensorflow as tf
structure = [[1, 2], [3, 4]]
flat = [10, 20, 30, 40]
res = tf.nest.pack_sequence_as(structure, flat)
print(res)
Результат выполнения кода:
[[10, 20], [30, 40]]
Пример
Давайте упакуем значения в словарь, повторяя структуру ключей:
import tensorflow as tf
structure = {'a': None, 'b': None}
flat = [1, 2]
res = tf.nest.pack_sequence_as(structure, flat)
print(res)
Результат выполнения кода:
{'a': 1, 'b': 2}
Пример
Давайте восстановим структуру тензоров после
их распаковки с помощью nest.flatten:
import tensorflow as tf
structure = [tf.constant([1, 2, 3]), tf.constant([4, 5, 6])]
flat = tf.nest.flatten(structure)
res = tf.nest.pack_sequence_as(structure, flat)
print(res)
Результат выполнения кода:
[<tf.Tensor: shape=(3,), dtype=int32, numpy=array([1, 2, 3], dtype=int32)>, <tf.Tensor: shape=(3,), dtype=int32, numpy=array([4, 5, 6], dtype=int32)>]
Смотрите также
-
функцию
nest.flatten,
которая разворачивает структуру в плоский список -
функцию
nest.map_structure,
которая применяет функцию к каждому элементу структуры -
функцию
nest.assert_same_structure,
которая проверяет совпадение структур -
функцию
nest.is_nested,
которая проверяет, является ли объект вложенной структурой