I am implementing an algorithm where I interleave the NUTS sampler within a larger program basically calling pm.sample() every 50/100 steps of my larger program…hence I cant afford to tune excessively each time I enter the sampling window.
I wanted to tune the sampler just once and extract the step size param so in subsequent sampling windows I can skip tuning (tune=0 and adapt_step_size=False) and just substitute the step size from the earlier run. I am writing it like below but I reckon I am missing the relationship between step_scale and step_size → the doc says it is something like (1/n**(1/4)) …I don’t quite understand it, like what is n?
When I run the below…the extracted step_size from trace.get_sampler_stats('step_size') doesnt bear any resemblance to the step_scale (but I think they mean different things?)
I don’t know about step_size vs step_scale, but to be able to skip tuning you’ll need also “good” initial points and the mass matrix in addition to the step size, otherwise sampling will be very inefficient. I’ll try to add some references whenever I have some free time.