-
Notifications
You must be signed in to change notification settings - Fork 230
Closed
Description
I'm not sure if this is a Turing problem or a MCMCChains problem, but...when trying to fit a minimal Turing model with the following code...
using Turing
function myfun(a, b)
x = [0:0.1:1;]
a .* x .+ b
end
aa = 2.0
bb = 3.0
obs1 = myfun(aa, bb) .+ (rand(11) .- 0.5)
@model fitmyfun(y) = begin
a ~ Normal(0, 10)
b ~ Normal(0, 10)
resid ~ InverseGamma(1, 1)
mod = myfun(a, b)
y ~ MvNormal(mod, sqrt(resid))
end
chain = sample(fitmyfun(obs1), NUTS(), 1000)...I get the following error at the end of the sampling (I guess, when the chain objects are being finalized):
ERROR: LoadError: MethodError: no method matching AxisArrays.AxisArray(::Array{Float64,3}; iter=1:1:500, var=["resid", "b", "a", "lp", "n_steps", "is_accept", "acceptance_rate", "log_density", "hamiltonian_energy", "hamiltonian_energy_error", "max_hamiltonian_energy_error", "tree_depth", "numerical_error", "step_size", "nom_step_size"], chain=1:1)
Closest candidates are:
AxisArrays.AxisArray(::AbstractArray) at /Users/ashiklom/.julia/packages/AxisArrays/yhKAp/src/core.jl:231 got unsupported keyword arguments "iter", "var", "chain"
AxisArrays.AxisArray(::D, ::Ax) where {T, N, D<:AbstractArray{T,N}, Ax<:Tuple{Vararg{AxisArrays.Axis,N}}} at /Users/ashiklom/.julia/packages/AxisArrays/yhKAp/src/core.jl:225 got unsupported keyword arguments "iter", "var", "chain"
AxisArrays.AxisArray(::AbstractArray, ::Tuple{Vararg{AxisArrays.Axis,N} where N}) at /Users/ashiklom/.julia/packages/AxisArrays/yhKAp/src/core.jl:221 got unsupported keyword arguments "iter", "var", "chain"
...
Stacktrace:
[1] Chains(::Array{Float64,3}, ::Array{String,1}, ::NamedTuple{(:internals,),Tuple{Array{String,1}}}; start::Int64, thin::Int64, evidence::Missing, info::NamedTuple{(),Tuple{}}, sorted::Bool) at /Users/ashiklom/.julia/packages/MCMCChains/WWfCJ/src/chains.jl:84
[2] Chains(::Array{Float64,2}, ::Array{String,1}, ::Vararg{Any,N} where N; kwargs::Base.Iterators.Pairs{Symbol,Any,Tuple{Symbol,Symbol,Symbol},NamedTuple{(:evidence, :info, :sorted),Tuple{Missing,NamedTuple{(),Tuple{}},Bool}}}) at /Users/ashiklom/.julia/packages/MCMCChains/WWfCJ/src/chains.jl:17
[3] bundle_samples(::Random._GLOBAL_RNG, ::DynamicPPL.Model{var"##inner_function#324#4",NamedTuple{(:y,),Tuple{Array{Float64,1}}},DynamicPPL.ModelGen{(:y,),var"###fitmyfun#350",NamedTuple{(),Tuple{}}},Val{()}}, ::DynamicPPL.Sampler{NUTS{Turing.Core.ForwardDiffAD{40},(),AdvancedHMC.DiagEuclideanMetric},Turing.Inference.HMCState{DynamicPPL.VarInfo{NamedTuple{(:a, :b, :resid),Tuple{DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:a},Int64},Array{Normal{Float64},1},Array{DynamicPPL.VarName{:a},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}},DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:b},Int64},Array{Normal{Float64},1},Array{DynamicPPL.VarName{:b},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}},DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:resid},Int64},Array{InverseGamma{Float64},1},Array{DynamicPPL.VarName{:resid},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}}}},Float64},AdvancedHMC.NUTS{AdvancedHMC.MultinomialTS,AdvancedHMC.GeneralisedNoUTurn,AdvancedHMC.Leapfrog{Float64},Float64},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.WelfordVar{Float64,Array{Float64,1}},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}, ::Int64, ::Array{Turing.Inference.HamiltonianTransition{NamedTuple{(:a, :b, :resid),Tuple{Tuple{Array{Float64,1},Array{String,1}},Tuple{Array{Float64,1},Array{String,1}},Tuple{Array{Float64,1},Array{String,1}}}},NamedTuple{(:n_steps, :is_accept, :acceptance_rate, :log_density, :hamiltonian_energy, :hamiltonian_energy_error, :max_hamiltonian_energy_error, :tree_depth, :numerical_error, :step_size, :nom_step_size),Tuple{Int64,Bool,Float64,Float64,Float64,Float64,Float64,Int64,Bool,Float64,Float64}},Float64},1}, ::Type{Chains}; discard_adapt::Bool, save_state::Bool, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/ashiklom/.julia/packages/Turing/q3coT/src/inference/Inference.jl:365
[4] bundle_samples(::Random._GLOBAL_RNG, ::DynamicPPL.Model{var"##inner_function#324#4",NamedTuple{(:y,),Tuple{Array{Float64,1}}},DynamicPPL.ModelGen{(:y,),var"###fitmyfun#350",NamedTuple{(),Tuple{}}},Val{()}}, ::DynamicPPL.Sampler{NUTS{Turing.Core.ForwardDiffAD{40},(),AdvancedHMC.DiagEuclideanMetric},Turing.Inference.HMCState{DynamicPPL.VarInfo{NamedTuple{(:a, :b, :resid),Tuple{DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:a},Int64},Array{Normal{Float64},1},Array{DynamicPPL.VarName{:a},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}},DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:b},Int64},Array{Normal{Float64},1},Array{DynamicPPL.VarName{:b},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}},DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:resid},Int64},Array{InverseGamma{Float64},1},Array{DynamicPPL.VarName{:resid},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}}}},Float64},AdvancedHMC.NUTS{AdvancedHMC.MultinomialTS,AdvancedHMC.GeneralisedNoUTurn,AdvancedHMC.Leapfrog{Float64},Float64},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.WelfordVar{Float64,Array{Float64,1}},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}, ::Int64, ::Array{Turing.Inference.HamiltonianTransition{NamedTuple{(:a, :b, :resid),Tuple{Tuple{Array{Float64,1},Array{String,1}},Tuple{Array{Float64,1},Array{String,1}},Tuple{Array{Float64,1},Array{String,1}}}},NamedTuple{(:n_steps, :is_accept, :acceptance_rate, :log_density, :hamiltonian_energy, :hamiltonian_energy_error, :max_hamiltonian_energy_error, :tree_depth, :numerical_error, :step_size, :nom_step_size),Tuple{Int64,Bool,Float64,Float64,Float64,Float64,Float64,Int64,Bool,Float64,Float64}},Float64},1}, ::Type{Chains}) at /Users/ashiklom/.julia/packages/Turing/q3coT/src/inference/Inference.jl:326
[5] mcmcsample(::Random._GLOBAL_RNG, ::DynamicPPL.Model{var"##inner_function#324#4",NamedTuple{(:y,),Tuple{Array{Float64,1}}},DynamicPPL.ModelGen{(:y,),var"###fitmyfun#350",NamedTuple{(),Tuple{}}},Val{()}}, ::DynamicPPL.Sampler{NUTS{Turing.Core.ForwardDiffAD{40},(),AdvancedHMC.DiagEuclideanMetric},Turing.Inference.HMCState{DynamicPPL.VarInfo{NamedTuple{(:a, :b, :resid),Tuple{DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:a},Int64},Array{Normal{Float64},1},Array{DynamicPPL.VarName{:a},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}},DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:b},Int64},Array{Normal{Float64},1},Array{DynamicPPL.VarName{:b},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}},DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:resid},Int64},Array{InverseGamma{Float64},1},Array{DynamicPPL.VarName{:resid},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}}}},Float64},AdvancedHMC.NUTS{AdvancedHMC.MultinomialTS,AdvancedHMC.GeneralisedNoUTurn,AdvancedHMC.Leapfrog{Float64},Float64},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.WelfordVar{Float64,Array{Float64,1}},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}, ::Int64; progress::Bool, progressname::String, callback::AbstractMCMC.var"#21#26"{AbstractMCMC.var"#21#22#27"}, chain_type::Type{T} where T, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/ashiklom/.julia/packages/AbstractMCMC/MPGEV/src/sample.jl:106
[6] sample(::Random._GLOBAL_RNG, ::DynamicPPL.Model{var"##inner_function#324#4",NamedTuple{(:y,),Tuple{Array{Float64,1}}},DynamicPPL.ModelGen{(:y,),var"###fitmyfun#350",NamedTuple{(),Tuple{}}},Val{()}}, ::DynamicPPL.Sampler{NUTS{Turing.Core.ForwardDiffAD{40},(),AdvancedHMC.DiagEuclideanMetric},Turing.Inference.HMCState{DynamicPPL.VarInfo{NamedTuple{(:a, :b, :resid),Tuple{DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:a},Int64},Array{Normal{Float64},1},Array{DynamicPPL.VarName{:a},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}},DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:b},Int64},Array{Normal{Float64},1},Array{DynamicPPL.VarName{:b},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}},DynamicPPL.Metadata{Dict{DynamicPPL.VarName{:resid},Int64},Array{InverseGamma{Float64},1},Array{DynamicPPL.VarName{:resid},1},Array{Float64,1},Array{Set{DynamicPPL.Selector},1}}}},Float64},AdvancedHMC.NUTS{AdvancedHMC.MultinomialTS,AdvancedHMC.GeneralisedNoUTurn,AdvancedHMC.Leapfrog{Float64},Float64},AdvancedHMC.Adaptation.StanHMCAdaptor{AdvancedHMC.Adaptation.WelfordVar{Float64,Array{Float64,1}},AdvancedHMC.Adaptation.NesterovDualAveraging{Float64}},AdvancedHMC.PhasePoint{Array{Float64,1},AdvancedHMC.DualValue{Float64,Array{Float64,1}}}}}, ::Int64; kwargs::Base.Iterators.Pairs{Symbol,Any,Tuple{Symbol,Symbol},NamedTuple{(:chain_type, :progress),Tuple{UnionAll,Bool}}}) at /Users/ashiklom/.julia/packages/AbstractMCMC/MPGEV/src/sample.jl:19
[7] sample(::Random._GLOBAL_RNG, ::DynamicPPL.Model{var"##inner_function#324#4",NamedTuple{(:y,),Tuple{Array{Float64,1}}},DynamicPPL.ModelGen{(:y,),var"###fitmyfun#350",NamedTuple{(),Tuple{}}},Val{()}}, ::NUTS{Turing.Core.ForwardDiffAD{40},(),AdvancedHMC.DiagEuclideanMetric}, ::Int64; chain_type::Type{T} where T, resume_from::Nothing, progress::Bool, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/ashiklom/.julia/packages/Turing/q3coT/src/inference/Inference.jl:155
[8] sample at /Users/ashiklom/.julia/packages/Turing/q3coT/src/inference/Inference.jl:154 [inlined]
[9] #sample#1 at /Users/ashiklom/.julia/packages/Turing/q3coT/src/inference/Inference.jl:141 [inlined]
[10] sample(::DynamicPPL.Model{var"##inner_function#324#4",NamedTuple{(:y,),Tuple{Array{Float64,1}}},DynamicPPL.ModelGen{(:y,),var"###fitmyfun#350",NamedTuple{(),Tuple{}}},Val{()}}, ::NUTS{Turing.Core.ForwardDiffAD{40},(),AdvancedHMC.DiagEuclideanMetric}, ::Int64) at /Users/ashiklom/.julia/packages/Turing/q3coT/src/inference/Inference.jl:141
[11] top-level scope at /Users/ashiklom/projects/other/julia-experimentation/turing-mre/turing-mre.jl:20
[12] include(::String) at ./client.jl:439
[13] top-level scope at REPL[3]:1
in expression starting at /Users/ashiklom/projects/other/julia-experimentation/turing-mre/turing-mre.jl:20
I get the same error using the latest stable release (v0.10.1) and the GitHub master branch.
Metadata
Metadata
Assignees
Labels
No labels