code: def _while_loop(
      cond,
      body,
      loop_vars,  # pylint: disable=redefined-outer-name
      shape_invariants=None,
      parallel_iterations=10,  # pylint: disable=unused-argument
      back_prop=True,
      swap_memory=False,  # pylint: disable=unused-argument
      maximum_iterations=None,
      name=None,
  ):  # pylint: disable=unused-argument
      """Numpy implementation of `tf.while_loop`."""
      i = 0
      while cond(*loop_vars) and (
          maximum_iterations is None or i < maximum_iterations
      ):
          loop_vars = body(*loop_vars)
          i += 1
      return loop_vars
  
file_path: probability/tensorflow_probability/python/internal/backend/numpy/control_flow.py
imports: import collections
  import functools
  import numpy
  from tensorflow_probability.python.internal.backend.numpy import _utils
  from tensorflow_probability.python.internal.backend.numpy import dtype
  from tensorflow_probability.python.internal.backend.numpy import nest
  from tensorflow_probability.python.internal.backend.numpy import ops
label_desc: Use image node_id 4 for calling a global function with example usage: _while_loop(cond, body, loop_vars, shape_invariants, parallel_iterations, back_prop, swap_memory, maximum_iterations, name) and returns: loop_vars