We knew about this with @albertpod. I'm noting it here so we don't forget. The problem is that in RxInfer v3.0.0, there was a change in how predictions are constrained by default. Before, the where { allow_missing = true } block made sure that data points were connected with other hidden states (jointly distributed). Now, with the factorized = true option in the getorcreate! function of GraphPPL.jl, all data points are separated (mean-field ed).
One possible solution could be to introduce a special structure, let's call it UnfactorizedData, that wraps the data input, allowing us to set factorized = false in the getorcreate! function. For example:
infer(
model = ...,
data = (y = UnfactorizedData(missing), )
)
We knew about this with @albertpod. I'm noting it here so we don't forget. The problem is that in RxInfer v3.0.0, there was a change in how predictions are constrained by default. Before, the
where { allow_missing = true }
block made sure that data points were connected with other hidden states (jointly distributed). Now, with thefactorized = true
option in thegetorcreate!
function ofGraphPPL.jl
, all data points are separated (mean-field ed).One possible solution could be to introduce a special structure, let's call it
UnfactorizedData
, that wraps the data input, allowing us to setfactorized = false
in thegetorcreate!
function. For example: