I would like to continue an ADVI inference right where it ended. Pickling the python object is not an option as it consumes too much memory. Additionally, I would like to switch from float32 GPU to float64 CPU calculations and am not sure If that would work once the inference was started on GPU.
I belive the state of the inference consists of three vectors:
- parameter standard deviations
- stochastic optimizer state
During the first round of inference I get
means = approx.bij.rmap(approx.mean.get_value()) stds = approx.bij.rmap(approx.std.eval())
and save them with some means (in this case with h5py). I do this during a callback where
approx is the first argument passed to the callback function. I do not know how to obtain
To start the second round of inference I load
stds and start the process with
advi = pm.fit(model=model, method='advi', start=means)
However, how do I initialize the inference with
stds and `opts?