-
Notifications
You must be signed in to change notification settings - Fork 230
Closed
Description
Hi all-
I want to report a model that fails on Julia 1.6 beta1. I tried to run a multilevel model described here. I simplified the model into a linear regression, which runs on Julia 1.5.3
Model:
using Turing
using Distributions
import Random
@model regression(y, X) = begin
sigma ~ LogNormal()
beta ~ filldist(Normal(), 1)
intercept ~ Normal()
s2 ~ InverseGamma(3, 2)
s = sqrt(s2)
y .~ Normal.(intercept .+ X * beta, sigma)
end
# Generate data.
Random.seed!(0)
N = 30
X = randn(N, 1)
beta = 1.0
intercept = 1
sigma = .1
y = intercept .+ X * beta + randn(N) * sigma
# Sample via NUTS.
chain = sample(regression(y, X), NUTS(), 2000, progress=true)
Error:
ERROR: LoadError: MethodError: no method matching ~(::Float64, ::Normal{Float64})
Stacktrace:
[1] _broadcast_getindex_evalf
@ ./broadcast.jl:648 [inlined]
[2] _broadcast_getindex
@ ./broadcast.jl:621 [inlined]
[3] getindex
@ ./broadcast.jl:575 [inlined]
[4] copy
@ ./broadcast.jl:922 [inlined]
[5] materialize
@ ./broadcast.jl:883 [inlined]
[6] #5
@ ~/Desktop/temp.jl:89 [inlined]
[7] (::var"#5#6")(_rng::Random._GLOBAL_RNG, _model::DynamicPPL.Model{var"#5#6", (:y, :X), (), (), Tuple{Matrix{Float64}, Matrix{Float64}}, Tuple{}}, _varinfo::DynamicPPL.ThreadSafeVarInfo{DynamicPPL.UntypedVarInfo{DynamicPPL.Metadata{Dict{DynamicPPL.VarName, Int64}, Vector{Distribution}, Vector{DynamicPPL.VarName}, Vector{Real}, Vector{Set{DynamicPPL.Selector}}}, Float64}, Vector{Base.RefValue{Float64}}}, _sampler::DynamicPPL.SampleFromUniform, _context::DynamicPPL.DefaultContext, y::Matrix{Float64}, X::Matrix{Float64})
@ Main ./none:0
[8] macro expansion
@ ~/.julia/packages/DynamicPPL/u14IH/src/model.jl:0 [inlined]
[9] _evaluate
@ ~/.julia/packages/DynamicPPL/u14IH/src/model.jl:154 [inlined]
[10] evaluate_threadsafe(rng::Random._GLOBAL_RNG, model::DynamicPPL.Model{var"#5#6", (:y, :X), (), (), Tuple{Matrix{Float64}, Matrix{Float64}}, Tuple{}}, varinfo::DynamicPPL.UntypedVarInfo{DynamicPPL.Metadata{Dict{DynamicPPL.VarName, Int64}, Vector{Distribution}, Vector{DynamicPPL.VarName}, Vector{Real}, Vector{Set{DynamicPPL.Selector}}}, Float64}, sampler::DynamicPPL.SampleFromUniform, context::DynamicPPL.DefaultContext)
@ DynamicPPL ~/.julia/packages/DynamicPPL/u14IH/src/model.jl:144
[11] Model
@ ~/.julia/packages/DynamicPPL/u14IH/src/model.jl:94 [inlined]
[12] VarInfo
@ ~/.julia/packages/DynamicPPL/u14IH/src/varinfo.jl:126 [inlined]
[13] VarInfo
@ ~/.julia/packages/DynamicPPL/u14IH/src/varinfo.jl:125 [inlined]
[14] step(rng::Random._GLOBAL_RNG, model::DynamicPPL.Model{var"#5#6", (:y, :X), (), (), Tuple{Matrix{Float64}, Matrix{Float64}}, Tuple{}}, spl::DynamicPPL.Sampler{NUTS{Turing.Core.ForwardDiffAD{40}, (), AdvancedHMC.DiagEuclideanMetric}}; resume_from::Nothing, kwargs::Base.Iterators.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:nadapts,), Tuple{Int64}}})
@ DynamicPPL ~/.julia/packages/DynamicPPL/u14IH/src/sampler.jl:73
[15] macro expansion
@ ~/.julia/packages/AbstractMCMC/Nw3Wn/src/sample.jl:78 [inlined]
[16] macro expansion
@ ~/.julia/packages/ProgressLogging/BBN0b/src/ProgressLogging.jl:328 [inlined]
[17] macro expansion
@ ~/.julia/packages/AbstractMCMC/Nw3Wn/src/logging.jl:8 [inlined]
[18] mcmcsample(rng::Random._GLOBAL_RNG, model::DynamicPPL.Model{var"#5#6", (:y, :X), (), (), Tuple{Matrix{Float64}, Matrix{Float64}}, Tuple{}}, sampler::DynamicPPL.Sampler{NUTS{Turing.Core.ForwardDiffAD{40}, (), AdvancedHMC.DiagEuclideanMetric}}, N::Int64; progress::Bool, progressname::String, callback::Nothing, discard_initial::Int64, thinning::Int64, chain_type::Type, kwargs::Base.Iterators.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:nadapts,), Tuple{Int64}}})
@ AbstractMCMC ~/.julia/packages/AbstractMCMC/Nw3Wn/src/sample.jl:76
[19] sample(rng::Random._GLOBAL_RNG, model::DynamicPPL.Model{var"#5#6", (:y, :X), (), (), Tuple{Matrix{Float64}, Matrix{Float64}}, Tuple{}}, sampler::DynamicPPL.Sampler{NUTS{Turing.Core.ForwardDiffAD{40}, (), AdvancedHMC.DiagEuclideanMetric}}, N::Int64; chain_type::Type, resume_from::Nothing, progress::Bool, nadapts::Int64, discard_adapt::Bool, discard_initial::Int64, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ Turing.Inference ~/.julia/packages/Turing/O1Pn0/src/inference/hmc.jl:140
[20] #sample#2
@ ~/.julia/packages/Turing/O1Pn0/src/inference/Inference.jl:143 [inlined]
[21] #sample#1
@ ~/.julia/packages/Turing/O1Pn0/src/inference/Inference.jl:133 [inlined]
[22] top-level scope
@ ./timing.jl:206 [inlined]
[23] top-level scope
@ ~/Desktop/temp.jl:0
in expression starting at /home/dfish/Desktop/temp.jl:102
Version:
Julia 1.6.0 beta1
Turing v0.15.8
Metadata
Metadata
Assignees
Labels
No labels