diff --git a/Project.toml b/Project.toml index 3c3935a9..ef8ac19a 100644 --- a/Project.toml +++ b/Project.toml @@ -27,7 +27,7 @@ UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" [compat] Accessors = "0.1" Distributions = "0.25" -DynamicPPL = "0.20, 0.21, 0.22, 0.23" +DynamicPPL = "0.21, 0.22, 0.23, 0.24" Folds = "0.2" ForwardDiff = "0.10" IrrationalConstants = "0.1.1, 0.2" @@ -46,7 +46,7 @@ SciMLBase = "1.8.1" Statistics = "1.6" StatsBase = "0.33, 0.34" Transducers = "0.4.5" -Turing = "0.24, 0.25, 0.26" +Turing = "0.24, 0.25, 0.26, 0.27" UnPack = "1" julia = "1.6" diff --git a/docs/Project.toml b/docs/Project.toml index 4a99bf83..890ad25a 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -15,7 +15,7 @@ TransformedLogDensities = "f9bc47f6-f3f8-4f3b-ab21-f8bc73906f26" Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" [compat] -AdvancedHMC = "0.4" +AdvancedHMC = "0.4, 0.5" Documenter = "1" DynamicHMC = "3" ForwardDiff = "0.10" @@ -26,4 +26,4 @@ StatsFuns = "0.9, 1" StatsPlots = "0.14, 0.15" TransformVariables = "0.6, 0.7, 0.8" TransformedLogDensities = "1" -Turing = "0.24, 0.25, 0.26" +Turing = "0.24, 0.25, 0.26, 0.27" diff --git a/docs/src/examples/initializing-hmc.md b/docs/src/examples/initializing-hmc.md index add0f0dd..2a0bbe70 100644 --- a/docs/src/examples/initializing-hmc.md +++ b/docs/src/examples/initializing-hmc.md @@ -172,11 +172,11 @@ metric = DiagEuclideanMetric(dim) hamiltonian = Hamiltonian(metric, ∇P) ϵ = find_good_stepsize(hamiltonian, init_params) integrator = Leapfrog(ϵ) -proposal = AdvancedHMC.NUTS{MultinomialTS,GeneralisedNoUTurn}(integrator) +kernel = HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) adaptor = StepSizeAdaptor(0.8, integrator) samples_ahmc1, stats_ahmc1 = sample( hamiltonian, - proposal, + kernel, init_params, ndraws + nadapts, adaptor, @@ -196,11 +196,11 @@ metric = DenseEuclideanMetric(Matrix(inv_metric)) hamiltonian = Hamiltonian(metric, ∇P) ϵ = find_good_stepsize(hamiltonian, init_params) integrator = Leapfrog(ϵ) -proposal = AdvancedHMC.NUTS{MultinomialTS,GeneralisedNoUTurn}(integrator) +kernel = HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) adaptor = StepSizeAdaptor(0.8, integrator) samples_ahmc2, stats_ahmc2 = sample( hamiltonian, - proposal, + kernel, init_params, ndraws + nadapts, adaptor, @@ -220,11 +220,11 @@ metric = Pathfinder.RankUpdateEuclideanMetric(inv_metric) hamiltonian = Hamiltonian(metric, ∇P) ϵ = find_good_stepsize(hamiltonian, init_params) integrator = Leapfrog(ϵ) -proposal = AdvancedHMC.NUTS{MultinomialTS,GeneralisedNoUTurn}(integrator) +kernel = HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) adaptor = StepSizeAdaptor(0.8, integrator) samples_ahmc3, stats_ahmc3 = sample( hamiltonian, - proposal, + kernel, init_params, ndraws + nadapts, adaptor, diff --git a/docs/src/examples/turing.md b/docs/src/examples/turing.md index 3bf3055a..66cf2a44 100644 --- a/docs/src/examples/turing.md +++ b/docs/src/examples/turing.md @@ -85,11 +85,11 @@ metric = Pathfinder.RankUpdateEuclideanMetric(inv_metric) hamiltonian = Hamiltonian(metric, ℓπ, ∂ℓπ∂θ) ϵ = find_good_stepsize(hamiltonian, init_params[1]) integrator = Leapfrog(ϵ) -proposal = AdvancedHMC.NUTS{MultinomialTS,GeneralisedNoUTurn}(integrator) +kernel = HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) adaptor = StepSizeAdaptor(0.8, integrator) samples, stats = sample( hamiltonian, - proposal, + kernel, init_params[1], ndraws + nadapts, adaptor, diff --git a/test/integration/AdvancedHMC/Project.toml b/test/integration/AdvancedHMC/Project.toml index 47c2aeee..fe958151 100644 --- a/test/integration/AdvancedHMC/Project.toml +++ b/test/integration/AdvancedHMC/Project.toml @@ -16,7 +16,7 @@ TransformVariables = "84d833dd-6860-57f9-a1a7-6da5db126cff" TransformedLogDensities = "f9bc47f6-f3f8-4f3b-ab21-f8bc73906f26" [compat] -AdvancedHMC = "0.4" +AdvancedHMC = "0.4, 0.5" Distributions = "0.25" ForwardDiff = "0.10" LogDensityProblems = "1, 2" diff --git a/test/integration/AdvancedHMC/runtests.jl b/test/integration/AdvancedHMC/runtests.jl index 6e713c55..8f1bcd0e 100644 --- a/test/integration/AdvancedHMC/runtests.jl +++ b/test/integration/AdvancedHMC/runtests.jl @@ -13,7 +13,7 @@ using AdvancedHMC, TransformVariables using TransformedLogDensities: TransformedLogDensity -Random.seed!(0) +Random.seed!(2) struct RegressionProblem{X,Y} x::X @@ -53,7 +53,7 @@ function compare_estimates(xs1, xs2, α=0.05) p = α / 2 m1, s1 = mean_and_mcse(xs1) m2, s2 = mean_and_mcse(xs2) - zs = @. (m1 - m2) / sqrt(s1^2 + s2^2) + zs = @. (m1 - m2) / hypot(s1, s2) @test all(norminvcdf(p) .< zs .< norminvccdf(p)) end @@ -106,7 +106,7 @@ end end @testset "sample" begin - ndraws = 1_000 + ndraws = 10_000 nadapts = 500 nparams = 5 x = 0:0.01:1 @@ -122,15 +122,15 @@ end hamiltonian = Hamiltonian(metric, ∇P) ϵ = find_good_stepsize(hamiltonian, θ₀) integrator = Leapfrog(ϵ) - proposal = NUTS{MultinomialTS,GeneralisedNoUTurn}(integrator) + kernel = HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) adaptor = StanHMCAdaptor( MassMatrixAdaptor(metric), StepSizeAdaptor(0.8, integrator) ) samples1, stats1 = sample( hamiltonian, - proposal, + kernel, θ₀, - ndraws, + ndraws + nadapts, adaptor, nadapts; drop_warmup=true, @@ -144,13 +144,13 @@ end hamiltonian = Hamiltonian(metric, ∇P) ϵ = find_good_stepsize(hamiltonian, θ₀) integrator = Leapfrog(ϵ) - proposal = NUTS{MultinomialTS,GeneralisedNoUTurn}(integrator) + kernel = HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) adaptor = StepSizeAdaptor(0.8, integrator) samples2, stats2 = sample( hamiltonian, - proposal, + kernel, result_pf.draws[:, 1], - ndraws, + ndraws + nadapts, adaptor, nadapts; drop_warmup=true, @@ -164,13 +164,13 @@ end hamiltonian = Hamiltonian(metric, ∇P) ϵ = find_good_stepsize(hamiltonian, θ₀) integrator = Leapfrog(ϵ) - proposal = NUTS{MultinomialTS,GeneralisedNoUTurn}(integrator) + kernel = HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) adaptor = StepSizeAdaptor(0.8, integrator) samples3, stats3 = sample( hamiltonian, - proposal, + kernel, result_pf.draws[:, 1], - ndraws, + ndraws + nadapts, adaptor, nadapts; drop_warmup=true, @@ -184,13 +184,13 @@ end hamiltonian = Hamiltonian(metric, ∇P) ϵ = find_good_stepsize(hamiltonian, θ₀) integrator = Leapfrog(ϵ) - proposal = NUTS{MultinomialTS,GeneralisedNoUTurn}(integrator) + kernel = HMCKernel(Trajectory{MultinomialTS}(integrator, GeneralisedNoUTurn())) adaptor = StepSizeAdaptor(0.8, integrator) samples4, stats4 = sample( hamiltonian, - proposal, + kernel, result_pf.draws[:, 1], - ndraws, + ndraws + nadapts, adaptor, nadapts; drop_warmup=true, diff --git a/test/integration/DynamicHMC/runtests.jl b/test/integration/DynamicHMC/runtests.jl index 71f7ce97..3bce8fe0 100644 --- a/test/integration/DynamicHMC/runtests.jl +++ b/test/integration/DynamicHMC/runtests.jl @@ -47,7 +47,7 @@ function compare_estimates(xs1, xs2, α=0.05) p = α / 2 m1, s1 = mean_and_mcse(xs1) m2, s2 = mean_and_mcse(xs2) - zs = @. (m1 - m2) / sqrt(s1^2 + s2^2) + zs = @. (m1 - m2) / hypot(s1, s2) @test all(norminvcdf(p) .< zs .< norminvccdf(p)) end @@ -76,7 +76,7 @@ end end @testset "DynamicHMC.mcmc_with_warmup" begin - ndraws = 1_000 + ndraws = 10_000 x = 0:0.01:1 y = sin.(x) .+ randn.() .* 0.2 .+ x X = [x x .^ 2 x .^ 3] diff --git a/test/integration/Turing/Project.toml b/test/integration/Turing/Project.toml index 1b41377e..669f8981 100644 --- a/test/integration/Turing/Project.toml +++ b/test/integration/Turing/Project.toml @@ -6,5 +6,5 @@ Turing = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" [compat] Pathfinder = "0.5, 0.6, 0.7" -Turing = "0.24, 0.25, 0.26" +Turing = "0.24, 0.25, 0.26, 0.27" julia = "1.6"