Turing.jl
Turing.jl copied to clipboard
Bijector error with VI and arraydist/filldist
I'm working on a model that includes a couple of random matrices. The model runs as expected with MCMC:
using Turing
@model function mwemodel(μX, Y)
X ~ arraydist(Normal.(μX, 0.5))
n ~ filldist(Exponential(5), size(μX, 2))
μY = X * n
Y ~ MvNormal(μY, 0.5)
end
μX = randn(5, 4)
n = randn(4)
Y = μX * n
m = mwemodel(μX, Y)
sample(m, NUTS(), 100) # runs as expected
...but when I try using VI to fit it, I get the following error:
julia> vi(m, ADVI())
┌ Info: [ADVI] Should only be seen once: optimizer created for θ
└ objectid(θ) = 0x10db53830ef6caa7
ERROR: MethodError: no method matching (::Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2})(::Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}})
Closest candidates are:
(::Inverse{var"#s112", N} where {var"#s112"<:(Bijectors.TruncatedBijector{2, T1, T2} where {T1, T2}), N})(::AbstractMatrix{var"#s111"} where var"#s111"<:Real) at C:\Users\sam.urmy\.julia\packages\Bijectors\EELoe\src\bijectors\truncated.jl:90
(::Inverse{var"#s112", N} where {var"#s112"<:(Bijectors.TruncatedBijector{2, T1, T2} where {T1, T2}), N})(::AbstractArray{var"#s111", N} where {var"#s111"<:(AbstractMatrix{var"#s110"} where var"#s110"<:Real), N}) at C:\Users\sam.urmy\.julia\packages\Bijectors\EELoe\src\bijectors\truncated.jl:101
Stacktrace:
[1] forward(b::Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, x::Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}})
@ Bijectors C:\Users\sam.urmy\.julia\packages\Bijectors\EELoe\src\interface.jl:102
[2] macro expansion
@ .\array.jl:0 [inlined]
[3] forward(b::Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}, x::Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}})
@ Bijectors C:\Users\sam.urmy\.julia\packages\Bijectors\EELoe\src\bijectors\stacked.jl:141
[4] _forward(td::MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, x::Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}})
@ Bijectors C:\Users\sam.urmy\.julia\packages\Bijectors\EELoe\src\transformed_distribution.jl:235
[5] forward(rng::Random._GLOBAL_RNG, td::MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}})
@ Bijectors C:\Users\sam.urmy\.julia\packages\Bijectors\EELoe\src\transformed_distribution.jl:244
[6] (::AdvancedVI.ELBO)(rng::Random._GLOBAL_RNG, alg::ADVI{AdvancedVI.ForwardDiffAD{40}}, q::MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, logπ::Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, num_samples::Int64)
@ AdvancedVI C:\Users\sam.urmy\.julia\packages\AdvancedVI\yCVq7\src\advi.jl:85
[7] (::AdvancedVI.ELBO)(alg::ADVI{AdvancedVI.ForwardDiffAD{40}}, q::MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, logπ::Function, num_samples::Int64; kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ AdvancedVI C:\Users\sam.urmy\.julia\packages\AdvancedVI\yCVq7\src\objectives.jl:6
[8] (::AdvancedVI.ELBO)(alg::ADVI{AdvancedVI.ForwardDiffAD{40}}, q::MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}, Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, logπ::Function, num_samples::Int64)
@ AdvancedVI C:\Users\sam.urmy\.julia\packages\AdvancedVI\yCVq7\src\objectives.jl:6
[9] (::AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}})(θ_::Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}})
@ AdvancedVI C:\Users\sam.urmy\.julia\packages\AdvancedVI\yCVq7\src\AdvancedVI.jl:140
[10] chunk_mode_gradient!(result::DiffResults.MutableDiffResult{1, Float64, Tuple{Vector{Float64}}}, f::AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, x::Vector{Float64}, cfg::ForwardDiff.GradientConfig{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10, Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}})
@ ForwardDiff C:\Users\sam.urmy\.julia\packages\ForwardDiff\UDrkY\src\gradient.jl:150
[11] gradient!(result::DiffResults.MutableDiffResult{1, Float64, Tuple{Vector{Float64}}}, f::AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, x::Vector{Float64}, cfg::ForwardDiff.GradientConfig{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10, Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}}, ::Val{true})
@ ForwardDiff C:\Users\sam.urmy\.julia\packages\ForwardDiff\UDrkY\src\gradient.jl:39
[12] gradient!(result::DiffResults.MutableDiffResult{1, Float64, Tuple{Vector{Float64}}}, f::AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, x::Vector{Float64}, cfg::ForwardDiff.GradientConfig{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10, Vector{ForwardDiff.Dual{ForwardDiff.Tag{AdvancedVI.var"#f#19"{AdvancedVI.ELBO, ADVI{AdvancedVI.ForwardDiffAD{40}}, MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, Turing.Variational.var"#logπ#2"{DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, DynamicPPL.TypedVarInfo{NamedTuple{(:X, :n), Tuple{DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:X, Tuple{}}, Int64}, Vector{DistributionsAD.MatrixOfUnivariate{Continuous, Normal{Float64}, Matrix{Normal{Float64}}}}, Vector{AbstractPPL.VarName{:X, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}, DynamicPPL.Metadata{Dict{AbstractPPL.VarName{:n, Tuple{}}, Int64}, Vector{Product{Continuous, Exponential{Float64}, FillArrays.Fill{Exponential{Float64}, 1, Tuple{Base.OneTo{Int64}}}}}, Vector{AbstractPPL.VarName{:n, Tuple{}}}, Vector{Float64}, Vector{Set{DynamicPPL.Selector}}}}}, Float64}}, Tuple{Int64}}, Float64}, Float64, 10}}})
@ ForwardDiff C:\Users\sam.urmy\.julia\packages\ForwardDiff\UDrkY\src\gradient.jl:35
[13] grad!(vo::AdvancedVI.ELBO, alg::ADVI{AdvancedVI.ForwardDiffAD{40}}, q::MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, model::Function, θ::Vector{Float64}, out::DiffResults.MutableDiffResult{1, Float64, Tuple{Vector{Float64}}}, args::Int64)
@ AdvancedVI C:\Users\sam.urmy\.julia\packages\AdvancedVI\yCVq7\src\AdvancedVI.jl:149
[14] macro expansion
@ C:\Users\sam.urmy\.julia\packages\AdvancedVI\yCVq7\src\AdvancedVI.jl:213 [inlined]
[15] macro expansion
@ .\timing.jl:287 [inlined]
[16] optimize!(vo::AdvancedVI.ELBO, alg::ADVI{AdvancedVI.ForwardDiffAD{40}}, q::MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}, model::Function, θ::Vector{Float64}; optimizer::AdvancedVI.TruncatedADAGrad)
@ AdvancedVI C:\Users\sam.urmy\.julia\packages\AdvancedVI\yCVq7\src\AdvancedVI.jl:212
[17] vi(model::DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, alg::ADVI{AdvancedVI.ForwardDiffAD{40}}, q::MultivariateTransformed{DistributionsAD.TuringDiagMvNormal{Vector{Float64}, Vector{Float64}}, Stacked{Tuple{Inverse{Bijectors.TruncatedBijector{2, Float64, Float64}, 2}, Bijectors.Exp{1}}, Tuple{UnitRange{Int64}, UnitRange{Int64}}}}; optimizer::AdvancedVI.TruncatedADAGrad)
@ Turing.Variational C:\Users\sam.urmy\.julia\packages\Turing\uMQmD\src\variational\advi.jl:111
[18] vi(model::DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, alg::ADVI{AdvancedVI.ForwardDiffAD{40}}; optimizer::AdvancedVI.TruncatedADAGrad)
@ Turing.Variational C:\Users\sam.urmy\.julia\packages\Turing\uMQmD\src\variational\advi.jl:96
[19] vi(model::DynamicPPL.Model{typeof(mwemodel), (:μX, :Y), (), (), Tuple{Matrix{Float64}, Vector{Float64}}, Tuple{}, DynamicPPL.DefaultContext}, alg::ADVI{AdvancedVI.ForwardDiffAD{40}})
@ Turing.Variational C:\Users\sam.urmy\.julia\packages\Turing\uMQmD\src\variational\advi.jl:95
[20] top-level scope
@ REPL[8]:1
...which I unfortunately can't make heads or tails of. I'm using Turing v0.18.0 and Bijectors v0.9.10.
Seems to be the same as https://github.com/TuringLang/Bijectors.jl/issues/200.
So if it is, should be fixed by https://github.com/TuringLang/Turing.jl/pull/1545.
Likely fixed by https://github.com/TuringLang/Turing.jl/pull/1545