RxInfer.jl icon indicating copy to clipboard operation
RxInfer.jl copied to clipboard

Error initializing model parameters as constants in GMM

Open mhidalgoaraya opened this issue 8 months ago • 1 comments

Hello, I am trying to initialize a simple toy model with the parameters of a GMM (m_s and τ_s ) as point masses, however I get an error
_ERROR: The number of means and precisions in NormalMixture must be at least 2. Got 1 means and 1 precisions._

@model function lGMM_model(y, μx0, τx0)
    
    # Switch 
    θ  = 0.5
    m_s= [0.0, 0.0]
    τ_s = [0.01, 0.001]

    xprior ~ Normal(mean = μx0, precision = τx0)

    c ~ Bernoulli(θ)
    s ~ NormalMixture(switch=c, m=m_s, p=τ_s) 

    x ~ Normal(mean = xprior, precision = 0.01) 
    w  := x + s 
    y ~ Normal(mean = w, precision = 0.01)
end

What is is strange is that the initializantion works if I define the parameters as tuples

m_s= (0.0, 0.0) τ_s = (0.01, 0.001)

mhidalgoaraya avatar Jun 04 '24 13:06 mhidalgoaraya