diff --git a/Project.toml b/Project.toml index e9b2fca278..5b75d5b427 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "Turing" uuid = "fce5fe82-541a-59a6-adf8-730c64b5f9a0" -version = "0.17.0" +version = "0.17.1" [deps] AbstractMCMC = "80f14c24-f653-4e6a-9b94-39d6b0f70001" @@ -44,7 +44,7 @@ DataStructures = "0.18" Distributions = "0.23.3, 0.24, 0.25" DistributionsAD = "0.6" DocStringExtensions = "0.8" -DynamicPPL = "0.12.1, 0.13" +DynamicPPL = "0.14" EllipticalSliceSampling = "0.4" ForwardDiff = "0.10.3" Libtask = "0.4, 0.5.3" diff --git a/src/modes/ModeEstimation.jl b/src/modes/ModeEstimation.jl index 92564770c1..9b2448a439 100644 --- a/src/modes/ModeEstimation.jl +++ b/src/modes/ModeEstimation.jl @@ -28,6 +28,10 @@ struct OptimizationContext{C<:AbstractContext} <: AbstractContext context::C end +DynamicPPL.NodeTrait(::OptimizationContext) = DynamicPPL.IsParent() +DynamicPPL.childcontext(context::OptimizationContext) = context.context +DynamicPPL.setchildcontext(::OptimizationContext, child) = OptimizationContext(child) + # assume function DynamicPPL.tilde_assume(rng::Random.AbstractRNG, ctx::OptimizationContext, spl, dist, vn, inds, vi) return DynamicPPL.tilde_assume(ctx, spl, dist, vn, inds, vi) @@ -43,16 +47,6 @@ function DynamicPPL.tilde_assume(ctx::OptimizationContext, spl, dist, vn, inds, return r, Distributions.logpdf(dist, r) end - -# observe -function DynamicPPL.tilde_observe(ctx::OptimizationContext, sampler, right, left, vi) - return DynamicPPL.observe(right, left, vi) -end - -function DynamicPPL.tilde_observe(ctx::OptimizationContext{<:PriorContext}, sampler, right, left, vi) - return 0 -end - # dot assume function DynamicPPL.dot_tilde_assume(rng::Random.AbstractRNG, ctx::OptimizationContext, sampler, right, left, vns, inds, vi) return DynamicPPL.dot_tilde_assume(ctx, sampler, right, left, vns, inds, vi) @@ -72,26 +66,6 @@ function DynamicPPL.dot_tilde_assume(ctx::OptimizationContext, sampler::SampleFr return r, loglikelihood(right, r) end -# dot observe -function DynamicPPL.dot_tilde_observe(ctx::OptimizationContext{<:PriorContext}, sampler, right, left, vn, _, vi) - return 0 -end - -function DynamicPPL.dot_tilde_observe(ctx::OptimizationContext{<:PriorContext}, sampler, right, left, vi) - return 0 -end - -function DynamicPPL.dot_tilde_observe(ctx::OptimizationContext, sampler::SampleFromPrior, right, left, vns, _, vi) - # Values should be set and we're using `SampleFromPrior`, hence the `rng` argument shouldn't - # affect anything. - r = DynamicPPL.get_and_set_val!(Random.GLOBAL_RNG, vi, vns, right, sampler) - return loglikelihood(right, r) -end - -function DynamicPPL.dot_tilde_observe(ctx::OptimizationContext, sampler, dists, value, vi) - return sum(Distributions.logpdf.(dists, value)) -end - """ OptimLogDensity{M<:Model,C<:Context,V<:VarInfo} diff --git a/test/Project.toml b/test/Project.toml index f80c2185d0..d115b43935 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -37,7 +37,7 @@ CmdStan = "6.0.8" Distributions = "< 0.25.11" DistributionsAD = "0.6.3" DynamicHMC = "2.1.6, 3.0" -DynamicPPL = "0.12, 0.13" +DynamicPPL = "0.14" FiniteDifferences = "0.10.8, 0.11, 0.12" ForwardDiff = "0.10.12" MCMCChains = "4.13.0"