예제 #1
0
 def _nuts_next(step_size, inverse_mass_matrix, vv_state, rng):
     binary_tree = build_tree(vv_update, kinetic_fn, vv_state,
                              inverse_mass_matrix, step_size, rng)
     accept_prob = binary_tree.sum_accept_probs / binary_tree.num_proposals
     num_steps = binary_tree.num_proposals
     vv_state = vv_state.update(z=binary_tree.z_proposal,
                                potential_energy=binary_tree.z_proposal_pe,
                                z_grad=binary_tree.z_proposal_grad)
     return vv_state, num_steps, accept_prob
예제 #2
0
 def _nuts_next(step_size, inverse_mass_matrix, vv_state, rng):
     binary_tree = build_tree(vv_update, kinetic_fn, vv_state,
                              inverse_mass_matrix, step_size, rng,
                              max_delta_energy=max_delta_energy,
                              max_tree_depth=max_treedepth)
     accept_prob = binary_tree.sum_accept_probs / binary_tree.num_proposals
     num_steps = binary_tree.num_proposals
     vv_state = IntegratorState(z=binary_tree.z_proposal,
                                r=vv_state.r,
                                potential_energy=binary_tree.z_proposal_pe,
                                z_grad=binary_tree.z_proposal_grad)
     return vv_state, num_steps, accept_prob, binary_tree.diverging
예제 #3
0
 def fn(vv_state):
     tree = build_tree(vv_update, kinetic_fn, vv_state, inverse_mass_matrix,
                       step_size, rng)
     return tree