tf.keras.tree.pack_sequence_as

Returns a given flattened sequence packed into a given structure.

If structure is an atom, flat_sequence must be a single-item list; in this case the return value is flat_sequence[0].

If structure is or contains a dict instance, the keys will be sorted to pack the flat sequence in deterministic order. This is true also for OrderedDict instances: their sequence order is considered. The same convention is followed in flatten. This correctly repacks dicts and OrderedDicts after they have been flattened, or vice-versa.

Dictionaries with non-sortable keys cannot be flattened.

Examples:

structure = {"key3": "", "key1": "", "key2": ""}
flat_sequence = ["value1", "value2", "value3"]
keras.tree.pack_sequence_as(structure, flat_sequence)
{"key3": "value3", "key1": "value1", "key2": "value2"}
structure = (("a", "b"), ("c", "d", "e"), "f")
flat_sequence = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
keras.tree.pack_sequence_as(structure, flat_sequence)
((1.0, 2.0), (3.0, 4.0, 5.0), 6.0)
structure = {"key3": {"c": ("alpha", "beta"), "a": ("gamma")},
"key1": {"e": "val1", "d": "val2"} }
flat_sequence = ["val2", "val1", 3.0, 1.0, 2.0]
keras.tree.pack_sequence_as(structure, flat_sequence)
{'key3': {'c': (1.0, 2.0), 'a': 3.0}, 'key1': {'e': 'val1', 'd': 'val2'} }
structure = ["a"]
flat_sequence = [np.array([[1, 2], [3, 4]])]
keras.tree.pack_sequence_as(structure, flat_sequence)
[array([[1, 2],
   [3, 4]])]
structure = ["a"]
flat_sequence = [keras.ops.ones([2, 2])]
keras.tree.pack_sequence_as(structure, flat_sequence)
[array([[1., 1.],
   [1., 1.]]]

structure Arbitrarily nested structure.
flat_sequence Flat sequence to pack.
sequence_fn Defaults to _sequence_like.

flat_sequence converted to have the same recursive structure as structure.