It is after exhausting all options I’m posting here. Basically, I have data from a spacetime grid (x,y,t), with 1 denoting an event and 0 denoting the absence of an event.
def model(grid_dims, obs=None):
# priors = pyro.sample("priors", dist.Beta(torch.ones(grid_shape), torch.ones(grid_shape)).to_event(len(grid_shape)))
bernoulli_priors = pyro.sample(
"bernoulli_priors",
dist.Beta(
torch.ones(grid_dims),
torch.ones(grid_dims),
).to_event(
len(grid_dims)
), # Not even sure what to event does
)
pyro.sample(
"grid", dist.Bernoulli(bernoulli_priors).to_event(len(grid_dims)), obs=obs
)
This is roughly the model I use and with SVI it seems to work well. However, because there is a sequential aspect to this data I wanted to use SMCFilter to do an even better job. Unfortunately, I only ended up fighting with the dimension sizes and whatnot and seems like nothing I tried worked.
For starters, I don’t get why SMC even needs a guide model. Any help is appreciated.