-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Labels
Description
One of the requirements of pysmc is that it needs to use its own step methods for three reasons:
- They must work in parallel (e.g. computing the acceptance rate must requires a reduction operation) tuning must be done in parallel.
- Tuning is done differently than in PyMC (e.g. the step method might want to see the complete particle approximation to decide on the new parameters) and it must also take place in parallel.
- One must be able to set/get all the parameters as a dictionary.
The class that implements a generic SMC step method is pysmc.RandomWalk. Its core functionality is inherited from pymc.Metropolis.
Now, when using PySMC only step methods that inherit pysmc.RandomWalk should be used.
There are two questions that I want to ask:
- Can one create a generic wrapper for an arbitrary PyMC step method that resembles pysmc.RandomWalk? This might be difficult or impossible, because of tuning complications.
- If the answer to 1) is NO. Then we should add functionality to the MCMCWrapper class of PySMC that assigns step methods only from the ones that comply fully with the pysmc.RandomWalk interface.