CUQI-DTU / CUQIpy

https://cuqi-dtu.github.io/CUQIpy/
Apache License 2.0
48 stars 9 forks source link

Make NUTS fully stateful in HybridGibbs #512

Open nabriis opened 2 months ago

nabriis commented 2 months ago

Let us work on getting the NUTS sampler fully stateful in HybridGibbs. This would mean no special case handling for NUTS in HybridGibbs.

Also relates to #474 and #505

Comment

do we lose NUTS step size here (epsilon, etc)? .. if so maybe we can print a warning

I also wonder if setting sampler.step_size = sampler.epsilon would be better than doing nothing, for NUTS. But it could be for another issue. What I mean is something like:


if isinstance(sampler, NUTS): 
                sampler.initial_point = sampler.current_point
                step_size = sampler.step_size

.
.
if not isinstance(sampler, NUTS): # Again, special case for NUTS.
                sampler.set_state(sampler_state)
                sampler.set_history(sampler_history)           
else:
                sampler.step_size = step_size

_Originally posted by @amal-ghamdi in https://github.com/CUQI-DTU/CUQIpy/pull/503#discussion_r1750386017_