code: def _map_structure_up_to_with_axes(
      structure, fn, *args, experimental_shard_axis_names=None
  ):
      if experimental_shard_axis_names is None:
          return nest.map_structure_up_to(structure, fn, *args)
      return nest.map_structure_up_to(
          structure, fn, *args, experimental_shard_axis_names
      )
  
imports: import collections
  import functools
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import assert_util
  from tensorflow_probability.python.internal import broadcast_util
  from tensorflow_probability.python.internal import distribute_lib
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import unnest
  from tensorflow_probability.python.math import gradient
  from tensorflow_probability.python.mcmc import kernel
  from tensorflow_probability.python.mcmc import simple_step_size_adaptation
  from tensorflow_probability.python.mcmc import transformed_kernel
  from tensorflow_probability.python.mcmc.internal import util
  from tensorflow.python.util import nest
label_desc: Use image node_id 1 for calling a global function with example usage: _map_structure_up_to_with_axes(structure, fn) and returns: nest, nest