tf.nest.map_structure
Applies func
to each entry in structure
and returns a new structure.
tf.nest.map_structure(
func, *structure, **kwargs
)
Applies func(x[0], x[1], ...)
where x[i] is an entry in structure[i]
. All structures in structure
must have the same arity, and the return value will contain results with the same structure layout.
Examples:
- A single Python dict:
a = {"hello": 24, "world": 76}
tf.nest.map_structure(lambda p: p * 2, a)
{'hello': 48, 'world': 152}
- Multiple Python dictionaries:
d1 = {"hello": 24, "world": 76}
d2 = {"hello": 36, "world": 14}
tf.nest.map_structure(lambda p1, p2: p1 + p2, d1, d2)
{'hello': 60, 'world': 90}
Args |
func | A callable that accepts as many arguments as there are structures. |
*structure | scalar, or tuple or dict or list of constructed scalars and/or other tuples/lists, or scalars. Note: numpy arrays are considered as scalars. |
**kwargs | Valid keyword args are: -
check_types : If set to True (default) the types of iterables within the structures have to be same (e.g. map_structure(func, [1], (1,)) raises a TypeError exception). To allow this set this argument to False . Note that namedtuples with identical name and fields are always considered to have the same shallow structure. -
expand_composites : If set to True , then composite tensors such as tf.sparse.SparseTensor and tf.RaggedTensor are expanded into their component tensors. If False (the default), then composite tensors are not expanded.
|
Returns |
A new structure with the same arity as structure , whose values correspond to func(x[0], x[1], ...) where x[i] is a value in the corresponding location in structure[i] . If there are different sequence types and check_types is False the sequence types of the first structure will be used. |
Raises |
TypeError | If func is not callable or if the structures do not match each other by depth tree. |
ValueError | If no structure is provided or if the structures do not match each other by type. |
ValueError | If wrong keyword arguments are provided. |