Turing.jl: Error with Gibbs compositional sampler and an array

Created on 29 Nov 2019  ·  5Comments  ·  Source: TuringLang/Turing.jl

I've written the following model:

@model test_model_a(x) = begin
    A ~ Gamma(10, 0.01)
    B ~ Gamma(1, 1)
    C ~ Binomial(2, 0.2)
    #C = 0
    N = length(x)
    y = Vector{Real}(undef, N)
    for i ∈ 1:N
        if C == 0
            y[i] ~ Normal(x[i] + A, B)
        else
            y[i] ~ Normal(A, B)
        end
    end
    return y
end

function test_a()
    x = randn(10)
    sampler = Gibbs(HMCDA(200, 0.65, 0.1, :A, :B), HMCDA(200, 0.65, 0.1, :y), PG(20, :C) )
    #sampler = HMCDA(200, 0.65, 0.1)
    c1 = sample(test_model_a(x), sampler, 1000)
    plot(c1)
end

When I call the function test_a, the following error is thrown:

julia> test_a()
┌ Info: Found initial step size
└   ϵ = 0.2
┌ Info: Found initial step size
└   ϵ = 3.2
Progress:   0%|▏                                                                                                              |  ETA: 1:11:48ERROR: BoundsError: attempt to access 10-element Array{ForwardDiff.Dual{ForwardDiff.Tag{Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}},Float64},Float64,10},1} at index [1:20]
Stacktrace:
 [1] throw_boundserror(::Array{ForwardDiff.Dual{ForwardDiff.Tag{Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}},Float64},Float64,10},1}, ::Tuple{UnitRange{Int64}}) at ./abstractarray.jl:538
 [2] checkbounds at ./abstractarray.jl:503 [inlined]
 [3] getindex at ./array.jl:750 [inlined]
 [4] macro expansion at /home/mateusz/.julia/packages/Turing/xFzfF/src/core/RandomVariables.jl:0 [inlined]
 [5] newmetadata(::NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}}, ::Val{(:y,)}, ::Array{ForwardDiff.Dual{ForwardDiff.Tag{Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}},Float64},Float64,10},1}) at /home/mateusz/.julia/packages/Turing/xFzfF/src/core/RandomVariables.jl:197
 [6] VarInfo at /home/mateusz/.julia/packages/Turing/xFzfF/src/core/RandomVariables.jl:193 [inlined]
 [7] f at /home/mateusz/.julia/packages/Turing/xFzfF/src/core/ad.jl:102 [inlined]
 [8] vector_mode_dual_eval(::Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}}, ::Array{Float64,1}, ::ForwardDiff.GradientConfig{ForwardDiff.Tag{Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}},Float64},Float64,10,Array{ForwardDiff.Dual{ForwardDiff.Tag{Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}},Float64},Float64,10},1}}) at /home/mateusz/.julia/packages/ForwardDiff/yPcDQ/src/apiutils.jl:37
 [9] vector_mode_gradient! at /home/mateusz/.julia/packages/ForwardDiff/yPcDQ/src/gradient.jl:103 [inlined]
 [10] gradient!(::Array{Float64,1}, ::Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}}, ::Array{Float64,1}, ::ForwardDiff.GradientConfig{ForwardDiff.Tag{Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}},Float64},Float64,10,Array{ForwardDiff.Dual{ForwardDiff.Tag{Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}},Float64},Float64,10},1}}, ::Val{true}) at /home/mateusz/.julia/packages/ForwardDiff/yPcDQ/src/gradient.jl:35
 [11] gradient!(::Array{Float64,1}, ::Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}}, ::Array{Float64,1}, ::ForwardDiff.GradientConfig{ForwardDiff.Tag{Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}},Float64},Float64,10,Array{ForwardDiff.Dual{ForwardDiff.Tag{Turing.Core.var"#f#31"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}},Float64},Float64,10},1}}) at /home/mateusz/.julia/packages/ForwardDiff/yPcDQ/src/gradient.jl:33
 [12] gradient_logp_forward(::Array{Float64,1}, ::Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64}, ::Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}, ::Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}) at /home/mateusz/.julia/packages/Turing/xFzfF/src/core/ad.jl:112
 [13] gradient_logp at /home/mateusz/.julia/packages/Turing/xFzfF/src/core/ad.jl:76 [inlined]
 [14] ∂logπ∂θ at /home/mateusz/.julia/packages/Turing/xFzfF/src/inference/hmc.jl:402 [inlined]
 [15] ∂H∂θ at /home/mateusz/.julia/packages/AdvancedHMC/y82Pj/src/hamiltonian.jl:19 [inlined]
 [16] phasepoint(::AdvancedHMC.Hamiltonian{AdvancedHMC.Adaptation.UnitEuclideanMetric{Float64},Turing.Inference.var"#logπ#36"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}},Turing.Inference.var"#∂logπ∂θ#35"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}}}, ::Array{Float64,1}, ::Array{Float64,1}) at /home/mateusz/.julia/packages/AdvancedHMC/y82Pj/src/hamiltonian.jl:50
 [17] step(::Random._GLOBAL_RNG, ::AdvancedHMC.Hamiltonian{AdvancedHMC.Adaptation.UnitEuclideanMetric{Float64},Turing.Inference.var"#logπ#36"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}},Turing.Inference.var"#∂logπ∂θ#35"{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}}}, ::AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}}, ::AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}) at /home/mateusz/.julia/packages/AdvancedHMC/y82Pj/src/hamiltonian.jl:117
 [18] #step!#34(::Base.Iterators.Pairs{Symbol,Int64,Tuple{Symbol},NamedTuple{(:iteration,),Tuple{Int64}}}, ::typeof(Turing.Interface.step!), ::Random._GLOBAL_RNG, ::Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}, ::Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}, ::Int64) at /home/mateusz/.julia/packages/Turing/xFzfF/src/inference/hmc.jl:359
 [19] #step! at ./none:0 [inlined]
 [20] #step!#9 at /home/mateusz/.julia/packages/Turing/xFzfF/src/interface/Interface.jl:341 [inlined]
 [21] (::Turing.Interface.var"#kw##step!")(::NamedTuple{(:iteration,),Tuple{Int64}}, ::typeof(Turing.Interface.step!), ::Random._GLOBAL_RNG, ::Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}, ::Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}, ::Int64, ::Turing.Inference.Transition{NamedTuple{(:A, :B, :C, :y),Tuple{Tuple{Array{Float64,1},Array{String,1}},Tuple{Array{Float64,1},Array{String,1}},Tuple{Array{Int64,1},Array{String,1}},Tuple{Array{Float64,1},Array{String,1}}}},Float64}) at ./none:0
 [22] macro expansion at ./util.jl:212 [inlined]
 [23] #step!#59(::Base.Iterators.Pairs{Symbol,Int64,Tuple{Symbol},NamedTuple{(:iteration,),Tuple{Int64}}}, ::typeof(Turing.Interface.step!), ::Random._GLOBAL_RNG, ::Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}, ::Turing.Sampler{Gibbs{Tuple{HMCDA{Turing.Core.ForwardDiffAD{40},(:A, :B),AdvancedHMC.Adaptation.UnitEuclideanMetric},HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},PG{(:C,)}}},Turing.Inference.GibbsState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Tuple{Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:A, :B),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Sampler{PG{(:C,)},Turing.Inference.PGState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Float64}}}}}, ::Int64, ::Turing.Inference.Transition{NamedTuple{(:A, :B, :C, :y),Tuple{Tuple{Array{Float64,1},Array{String,1}},Tuple{Array{Float64,1},Array{String,1}},Tuple{Array{Int64,1},Array{String,1}},Tuple{Array{Float64,1},Array{String,1}}}},Float64}) at /home/mateusz/.julia/packages/Turing/xFzfF/src/inference/gibbs.jl:203
 [24] (::Turing.Interface.var"#kw##step!")(::NamedTuple{(:iteration,),Tuple{Int64}}, ::typeof(Turing.Interface.step!), ::Random._GLOBAL_RNG, ::Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}, ::Turing.Sampler{Gibbs{Tuple{HMCDA{Turing.Core.ForwardDiffAD{40},(:A, :B),AdvancedHMC.Adaptation.UnitEuclideanMetric},HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},PG{(:C,)}}},Turing.Inference.GibbsState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Tuple{Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:A, :B),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Sampler{PG{(:C,)},Turing.Inference.PGState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Float64}}}}}, ::Int64, ::Turing.Inference.Transition{NamedTuple{(:A, :B, :C, :y),Tuple{Tuple{Array{Float64,1},Array{String,1}},Tuple{Array{Float64,1},Array{String,1}},Tuple{Array{Int64,1},Array{String,1}},Tuple{Array{Float64,1},Array{String,1}}}},Float64}) at ./none:0
 [25] #sample#4(::Bool, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(sample), ::Random._GLOBAL_RNG, ::Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}, ::Turing.Sampler{Gibbs{Tuple{HMCDA{Turing.Core.ForwardDiffAD{40},(:A, :B),AdvancedHMC.Adaptation.UnitEuclideanMetric},HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},PG{(:C,)}}},Turing.Inference.GibbsState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Tuple{Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:A, :B),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Sampler{PG{(:C,)},Turing.Inference.PGState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Float64}}}}}, ::Int64) at /home/mateusz/.julia/packages/Turing/xFzfF/src/interface/Interface.jl:195
 [26] #sample at ./none:0 [inlined]
 [27] #sample#3 at /home/mateusz/.julia/packages/Turing/xFzfF/src/interface/Interface.jl:170 [inlined]
 [28] (::StatsBase.var"#kw##sample")(::NamedTuple{(:progress,),Tuple{Bool}}, ::typeof(sample), ::Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}, ::Turing.Sampler{Gibbs{Tuple{HMCDA{Turing.Core.ForwardDiffAD{40},(:A, :B),AdvancedHMC.Adaptation.UnitEuclideanMetric},HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},PG{(:C,)}}},Turing.Inference.GibbsState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Tuple{Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:A, :B),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Sampler{HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},Turing.Inference.HMCState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},AdvancedHMC.HMCDA{AdvancedHMC.Leapfrog{Float64}},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.UnitPreconditioner{Float64},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}},Turing.Sampler{PG{(:C,)},Turing.Inference.PGState{Turing.Core.RandomVariables.VarInfo{NamedTuple{(:A, :B, :C, :y),Tuple{Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:A},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:A},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:B},Int64},Array{Gamma{Float64},1},Array{Turing.Core.RandomVariables.VarName{:B},1},Array{Float64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:C},Int64},Array{Binomial{Float64},1},Array{Turing.Core.RandomVariables.VarName{:C},1},Array{Int64,1},Array{Set{Turing.Selector},1}},Turing.Core.RandomVariables.Metadata{Dict{Turing.Core.RandomVariables.VarName{:y},Int64},Array{Normal{Float64},1},Array{Turing.Core.RandomVariables.VarName{:y},1},Array{Float64,1},Array{Set{Turing.Selector},1}}}},Float64},Float64}}}}}, ::Int64) at ./none:0
 [29] #sample#2(::Nothing, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(sample), ::Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}, ::Gibbs{Tuple{HMCDA{Turing.Core.ForwardDiffAD{40},(:A, :B),AdvancedHMC.Adaptation.UnitEuclideanMetric},HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},PG{(:C,)}}}, ::Int64) at /home/mateusz/.julia/packages/Turing/xFzfF/src/inference/Inference.jl:148
 [30] sample(::Turing.Model{Tuple{:A,:B,:C,:y},Tuple{:x},var"##inner_function#810#123",NamedTuple{(:x,),Tuple{Array{Float64,1}}},NamedTuple{(:x,),Tuple{Symbol}}}, ::Gibbs{Tuple{HMCDA{Turing.Core.ForwardDiffAD{40},(:A, :B),AdvancedHMC.Adaptation.UnitEuclideanMetric},HMCDA{Turing.Core.ForwardDiffAD{40},(:y,),AdvancedHMC.Adaptation.UnitEuclideanMetric},PG{(:C,)}}}, ::Int64) at /home/mateusz/.julia/packages/Turing/xFzfF/src/inference/Inference.jl:147

If I replace the variable C in my model with a constant (commented out here), the HMCDA sampler works correctly. How can I make this work?

I'm using Julia 1.3.0 and Turing 0.7.1.

Most helpful comment

This is an interesting one. The problem is that the csym created for the VarNames of variables y[i] is different when running the model with PG than for the rest. This means that when running the model with the PG sampler, the assume function tries to find the vn::VarName with the new csym in vi but can't so it adds it there. This creates a duplicate of every y[i] variable and increases the number of variables in vi. The fix is the VarName refactor in #965 which is why the example above works there. It's weird that this only showed up now.

All 5 comments

Seems like this https://github.com/TuringLang/Turing.jl/blob/67959c664e61340dd4d6f1da0250c256c3074b71/src/core/RandomVariables.jl#L206 implies that for some reason mdf.vals is of length 20 (number of particles) but x is of length 10 (number of latent variables). I'm not sure why this happens though.

Any idea @mohamed82008 ?

This is an interesting one. The problem is that the csym created for the VarNames of variables y[i] is different when running the model with PG than for the rest. This means that when running the model with the PG sampler, the assume function tries to find the vn::VarName with the new csym in vi but can't so it adds it there. This creates a duplicate of every y[i] variable and increases the number of variables in vi. The fix is the VarName refactor in #965 which is why the example above works there. It's weird that this only showed up now.

I will make a PR with only the VarName stuff from 965.

I've tried the branch from PR #1005. I don't have any errors on my full model and it converges quite nicely. Thanks!

Glad it worked :) That PR was closed because another PR will be merged soon which also includes that fix.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

hessammehr picture hessammehr  ·  4Comments

skanskan picture skanskan  ·  5Comments

fredcallaway picture fredcallaway  ·  5Comments

trappmartin picture trappmartin  ·  6Comments

marcoct picture marcoct  ·  6Comments