From 5efc95e47e6f0e842a88b10b211a94bd70a4fec5 Mon Sep 17 00:00:00 2001 From: David Widmann Date: Tue, 6 Sep 2022 11:23:29 +0200 Subject: [PATCH 1/4] Account for changes in DynamicHMC 3.3.0 --- Project.toml | 4 ++-- src/dynamichmc_inference.jl | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Project.toml b/Project.toml index ddd51648..12166ac9 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "DiffEqBayes" uuid = "ebbdde9d-f333-5424-9be2-dbf1e9acfb5e" authors = ["Vaibhavdixit02 "] -version = "3.0.0" +version = "3.0.1" [deps] DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" @@ -36,7 +36,7 @@ DiffResults = "1.0" Distances = "0.10" Distributions = "0.25" DocStringExtensions = "0.8" -DynamicHMC = "2.1, 3" +DynamicHMC = "3.3" ForwardDiff = "0.10" LabelledArrays = "1.0" LogDensityProblems = "0.11" diff --git a/src/dynamichmc_inference.jl b/src/dynamichmc_inference.jl index 17a41ec2..780df2a3 100644 --- a/src/dynamichmc_inference.jl +++ b/src/dynamichmc_inference.jl @@ -114,5 +114,5 @@ function dynamichmc_inference(problem::DiffEqBase.DEProblem, algorithm, t, data, ℓ = TransformedLogDensity(trans, P) ∇ℓ = LogDensityProblems.ADgradient(AD_gradient_kind, ℓ) results = mcmc_with_warmup(rng, ∇ℓ, num_samples; mcmc_kwargs...) - merge((posterior = TransformVariables.transform.(Ref(trans), results.chain),), results) + merge((posterior = TransformVariables.transform.(Ref(trans), results.posterior_matrix),), results) end From a0ca8eeccc55fa6a9cf4b18a7a5b44e424ab25a3 Mon Sep 17 00:00:00 2001 From: David Widmann Date: Tue, 6 Sep 2022 11:27:07 +0200 Subject: [PATCH 2/4] Keep support for older versions --- Project.toml | 2 +- src/dynamichmc_inference.jl | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 12166ac9..a0cdb901 100644 --- a/Project.toml +++ b/Project.toml @@ -36,7 +36,7 @@ DiffResults = "1.0" Distances = "0.10" Distributions = "0.25" DocStringExtensions = "0.8" -DynamicHMC = "3.3" +DynamicHMC = "2.1, 3" ForwardDiff = "0.10" LabelledArrays = "1.0" LogDensityProblems = "0.11" diff --git a/src/dynamichmc_inference.jl b/src/dynamichmc_inference.jl index 780df2a3..86be33f1 100644 --- a/src/dynamichmc_inference.jl +++ b/src/dynamichmc_inference.jl @@ -114,5 +114,10 @@ function dynamichmc_inference(problem::DiffEqBase.DEProblem, algorithm, t, data, ℓ = TransformedLogDensity(trans, P) ∇ℓ = LogDensityProblems.ADgradient(AD_gradient_kind, ℓ) results = mcmc_with_warmup(rng, ∇ℓ, num_samples; mcmc_kwargs...) - merge((posterior = TransformVariables.transform.(Ref(trans), results.posterior_matrix),), results) + posterior_matrix = if haskey(results, :chain) # DynamicHMC < 3.3.0 + results.chain + else + results.posterior_matrix + end + merge((posterior = TransformVariables.transform.(Ref(trans), posterior_matrix),), results) end From 1bb09f8859b322350dc1fc52869a5cafa7c32b9d Mon Sep 17 00:00:00 2001 From: David Widmann Date: Tue, 6 Sep 2022 11:32:49 +0200 Subject: [PATCH 3/4] Run formatter --- src/dynamichmc_inference.jl | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/dynamichmc_inference.jl b/src/dynamichmc_inference.jl index 86be33f1..83fe060b 100644 --- a/src/dynamichmc_inference.jl +++ b/src/dynamichmc_inference.jl @@ -115,9 +115,10 @@ function dynamichmc_inference(problem::DiffEqBase.DEProblem, algorithm, t, data, ∇ℓ = LogDensityProblems.ADgradient(AD_gradient_kind, ℓ) results = mcmc_with_warmup(rng, ∇ℓ, num_samples; mcmc_kwargs...) posterior_matrix = if haskey(results, :chain) # DynamicHMC < 3.3.0 - results.chain + results.chain else - results.posterior_matrix + results.posterior_matrix end - merge((posterior = TransformVariables.transform.(Ref(trans), posterior_matrix),), results) + merge((posterior = TransformVariables.transform.(Ref(trans), posterior_matrix),), + results) end From 7c7169e1878a312f8ff6781a1f4d0aa3250fc8af Mon Sep 17 00:00:00 2001 From: David Widmann Date: Tue, 6 Sep 2022 12:43:32 +0200 Subject: [PATCH 4/4] Fixes --- src/dynamichmc_inference.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/dynamichmc_inference.jl b/src/dynamichmc_inference.jl index 83fe060b..15d7833a 100644 --- a/src/dynamichmc_inference.jl +++ b/src/dynamichmc_inference.jl @@ -114,11 +114,11 @@ function dynamichmc_inference(problem::DiffEqBase.DEProblem, algorithm, t, data, ℓ = TransformedLogDensity(trans, P) ∇ℓ = LogDensityProblems.ADgradient(AD_gradient_kind, ℓ) results = mcmc_with_warmup(rng, ∇ℓ, num_samples; mcmc_kwargs...) - posterior_matrix = if haskey(results, :chain) # DynamicHMC < 3.3.0 + chain = if haskey(results, :chain) # DynamicHMC < 3.3.0 results.chain else - results.posterior_matrix + eachcol(results.posterior_matrix) end - merge((posterior = TransformVariables.transform.(Ref(trans), posterior_matrix),), - results) + posterior = map(Base.Fix1(TransformVariables.transform, trans), chain) + merge((; posterior), results) end