Learning Poisson State Space Model parameters for large number of samples

Thanks for your reply. Below is the model which I am trying to build

X_{i,t+1} \sim N(\mu_{i,t}, Q)\\ \mu_{i,t} = Ax_{i,t} + BU_{i}\\ y_{i,t} \sim Poisson(\lambda_{i,t})\\ \lambda_{i,t} = C \exp(X_{i,t})

So U is some exogenous variable that is known and that does not change with time, and X is latent space that is unknown. Some values in A are known which will model level or seasonality for example. But some will be estimated by the modeling. We assume that we don’t know everything in A and we don’t know anything about B. So we want to estimate X, A, B and C.

So we are modeling some seasonal cycles as well as level trend and the affect of exogenous variables.

So I am not using 3d tensor as the observed data, the shape of observed data is (number of samples, number of time points), which is two-dimensional but I am still not sure why it does not work.

Also, can you please elaborate the below code

mod.register_rv(hidden_states_pt, name='hidden_states', initval=pt.zeros((T, 2)))
obs = pm.Poisson('obs', pt.exp(hidden_states[:, 0]), observed=data)

How does the Poisson model understand that it generates data from hidden_states_pt, because in the above code observed data is generated from (hidden_states[:, 0]) which is ground truth and I am not sure it should be part of the model.