class_docstr: Runs one step of Uncalibrated Hamiltonian Monte Carlo.
  
  Warning: this kernel will not result in a chain which converges to the
  `target_log_prob`. To get a convergent MCMC, use `HamiltonianMonteCarlo(...)`
  or `MetropolisHastings(UncalibratedHamiltonianMonteCarlo(...))`.
  
  For more details on `UncalibratedHamiltonianMonteCarlo`, see
  `HamiltonianMonteCarlo`.
class_docstr_tok: ["Runs","one","step","of","Uncalibrated","Hamiltonian","Monte","Carlo",".","Warning",":","this","kernel","will","not","result","in","a","chain","which","converges","to","the","`","target_log_prob","`",".","To","get","a","convergent","MCMC",",","use","`","HamiltonianMonteCarlo","(","...",")","`","or","`","MetropolisHastings","(","UncalibratedHamiltonianMonteCarlo","(","...",")",")","`",".","For","more","details","on","`","UncalibratedHamiltonianMonteCarlo","`",",","see","`","HamiltonianMonteCarlo","`","."]
code: def bootstrap_results(self, init_state):
      with tf.name_scope(
          mcmc_util.make_name(self.name, "hmc", "bootstrap_results")
      ):
          init_state, _ = mcmc_util.prepare_state_parts(init_state)
          if self.state_gradients_are_stopped:
              init_state = [tf.stop_gradient(x) for x in init_state]
          [
              init_target_log_prob,
              init_grads_target_log_prob,
          ] = mcmc_util.maybe_call_fn_and_grads(
              self.target_log_prob_fn, init_state
          )
          result = UncalibratedHamiltonianMonteCarloKernelResults(
              log_acceptance_correction=tf.zeros_like(
                  init_target_log_prob
              ),
              target_log_prob=init_target_log_prob,
              grads_target_log_prob=init_grads_target_log_prob,
              initial_momentum=tf.nest.map_structure(
                  tf.zeros_like, init_state
              ),
              final_momentum=tf.nest.map_structure(
                  tf.zeros_like, init_state
              ),
              step_size=[],
              num_leapfrog_steps=[],
              # Allow room for one_step's seed.
              seed=samplers.zeros_seed(),
          )
          if self._store_parameters_in_results:
              result = result._replace(
                  # TODO(b/142590314): Try to use the following code once we commit to
                  # a tensorization policy.
                  # step_size=mcmc_util.prepare_state_parts(
                  #    self.step_size,
                  #    dtype=init_target_log_prob.dtype,
                  #    name='step_size')[0],
                  step_size=tf.nest.map_structure(
                      lambda x: tf.convert_to_tensor(  # pylint: disable=g-long-lambda
                          x,
                          dtype=init_target_log_prob.dtype,
                          name="step_size",
                      ),
                      self.step_size,
                  ),
                  num_leapfrog_steps=tf.convert_to_tensor(
                      self.num_leapfrog_steps,
                      dtype=tf.int32,
                      name="num_leapfrog_steps",
                  ),
              )
          return result
  
imports: import collections
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.internal import distribute_lib
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.mcmc import kernel
  from tensorflow_probability.python.mcmc import metropolis_hastings
  from tensorflow_probability.python.mcmc.internal import leapfrog_integrator
  from tensorflow_probability.python.mcmc.internal import util
  from tensorflow.python.util import deprecation
label_desc: Use image node_id 11 for calling the UncalibratedHamiltonianMonteCarlo obj's underlying member method code with example usage: obj.bootstrap_results(init_state) and returns: result