davidavdav / GaussianMixtures.jl

Large scale Gaussian Mixture Models
Other
99 stars 38 forks source link

Converting to GMM from MixtureModel doesn't work with diagonal covariance #107

Open achetverikov opened 1 year ago

achetverikov commented 1 year ago

So this:

g = rand(GMM, 2, 2, kind=:diag )
m = MixtureModel(g)
GMM(m)

gives an error:

ERROR: Inconsistent number of covars 2 != 4
Stacktrace:
 [1] error(s::String)
   @ Base .\error.jl:35
 [2] GMM{Float64, LinearAlgebra.Adjoint{Float64, Matrix{Float64}}}(w::Vector{Float64}, μ::LinearAlgebra.Adjoint{Float64, Matrix{Float64}}, Σ::LinearAlgebra.Adjoint{Float64, Matrix{Float64}}, hist::Vector{History}, nx::Int64)
   @ GaussianMixtures C:\Users\anche7026\.julia\packages\GaussianMixtures\zDaBV\src\gmmtypes.jl:79
 [3] GMM(w::Vector{Float64}, μ::LinearAlgebra.Adjoint{Float64, Matrix{Float64}}, Σ::LinearAlgebra.Adjoint{Float64, Matrix{Float64}}, hist::Vector{History}, nx::Int64)
   @ GaussianMixtures C:\Users\anche7026\.julia\packages\GaussianMixtures\zDaBV\src\gmmtypes.jl:89
 [4] GMM(m::MixtureModel{Multivariate, Continuous, DiagNormal, Categorical{Float64, Vector{Float64}}})
   @ GaussianMixtures C:\Users\anche7026\.julia\packages\GaussianMixtures\zDaBV\src\distributions.jl:19

while for the normal covariance things work as intended.