Join us at TensorFlow World, Oct 28-31. Use code TF20 for 20% off select passes. Register now

tf.contrib.framework.nest.map_structure_with_paths

View source on GitHub

Applies func to each entry in structure and returns a new structure.

tf.contrib.framework.nest.map_structure_with_paths(
    func,
    *structure,
    **kwargs
)

Applies func(path, x[0], x[1], ..., **kwargs) where x[i] is an entry in structure[i] and path is the common path to x[i] in the structures. All structures in structure must have the same arity, and the return value will contain the results with the same structure layout. Special kwarg check_types determines whether the types of iterables within the structure must be the same-- see **kwargs definition below.

Args:

  • func: A callable with the signature func(path, *values, **kwargs) that is evaluated on the leaves of the structure.
  • *structure: A variable number of compatible structures to process.
  • **kwargs: Optional kwargs to be passed through to func. Special kwarg check_types is not passed to func, but instead determines whether the types of iterables within the structures have to be same (e.g., map_structure(func, [1], (1,)) raises a TypeError exception). By default, the types must match. To allow iteration over structures of different types (but common arity), set this kwarg to False.

Returns:

A structure of the same form as the input structures whose leaves are the result of evaluating func on corresponding leaves of the input structures.

Raises:

  • TypeError: If func is not callable or if the structures do not match each other by depth tree.
  • TypeError: If check_types is not False and the two structures differ in the type of sequence in any of their substructures.
  • ValueError: If no structures are provided.