I did a sanity check to see whether this method can be used to simply resume sampling:
with model: # initial sample
step = pm.NUTS()
trace = pm.sample(draws=100, step=step, tune=3000, cores=n_chains)
from pymc3.step_methods.hmc import quadpotential
with model:
cov = np.atleast_1d(pm.trace_cov(trace))
start = list(np.random.choice(trace, n_chains))
potential = quadpotential.QuadPotentialFull(cov)
with pm.Model() as model2:
# Reset model here using the same observed data
step = pm.NUTS(potential=potential)
trace2 = pm.sample(draws=100, step=step, tune=0, cores=n_chains, start=start)
Which does not work at all - I get acceptance probabilities of 10-40% (for the second sampling). Which other tuning information do I need to carry over?