API
VarNames
AbstractPPL.VarName
— TypeVarName{sym}(optic=identity)
A variable identifier for a symbol sym
and optic optic
.
The Julia variable in the model corresponding to sym
can refer to a single value or to a hierarchical array structure of univariate, multivariate or matrix variables. The field lens
stores the indices requires to access the random variable from the Julia variable indicated by sym
as a tuple of tuples. Each element of the tuple thereby contains the indices of one optic operation.
VarName
s can be manually constructed using the VarName{sym}(optic)
constructor, or from an optic expression through the @varname
convenience macro.
Examples
julia> vn = VarName{:x}(Accessors.IndexLens((Colon(), 1)) ⨟ Accessors.IndexLens((2, )))
+API · AbstractPPL
+
+
+
+
+
+API
VarNames
AbstractPPL.VarName
— TypeVarName{sym}(optic=identity)
A variable identifier for a symbol sym
and optic optic
.
The Julia variable in the model corresponding to sym
can refer to a single value or to a hierarchical array structure of univariate, multivariate or matrix variables. The field lens
stores the indices requires to access the random variable from the Julia variable indicated by sym
as a tuple of tuples. Each element of the tuple thereby contains the indices of one optic operation.
VarName
s can be manually constructed using the VarName{sym}(optic)
constructor, or from an optic expression through the @varname
convenience macro.
Examples
julia> vn = VarName{:x}(Accessors.IndexLens((Colon(), 1)) ⨟ Accessors.IndexLens((2, )))
x[:, 1][2]
julia> getoptic(vn)
@@ -109,3 +567,4 @@
julia> y = ones(2); varname_to_string(@varname(y[:], true))
"{\"optic\":{\"indices\":{\"values\":[{\"range\":{\"stop\":2,\"type\":\"Base.OneTo\"},\"type\":\"AbstractPPL.ConcretizedSlice\"}],\"type\":\"Base.Tuple\"},\"type\":\"index\"},\"sym\":\"y\"}"
sourceAbstractPPL.string_to_varname
— Functionstring_to_varname(str::AbstractString)
Convert a string representation of a VarName
back to a VarName
. The string should have been generated by varname_to_string
.
sourceAbstract model functions
AbstractPPL.AbstractProbabilisticProgram
— TypeAbstractProbabilisticProgram
Common base type for models expressed as probabilistic programs.
sourceAbstractPPL.condition
— Functioncondition(model, observations)
Condition the generative model model
on some observed data, creating a new model of the (possibly unnormalized) posterior distribution over them.
observations
can be of any supported internal trace type, or a fixed probability expression.
The invariant
m = decondition(condition(m, obs))
should hold for generative models m
and arbitrary obs
.
sourceAbstractPPL.decondition
— Functiondecondition(conditioned_model)
Remove the conditioning (i.e., observation data) from conditioned_model
, turning it into a generative model over prior and observed variables.
The invariant
m == condition(decondition(m), obs)
should hold for models m
with conditioned variables obs
.
sourceAbstractPPL.fix
— Functionfix(model, params)
Fix the values of parameters specified in params
within the probabilistic model model
. This operation is equivalent to treating the fixed parameters as being drawn from a point mass distribution centered at the values specified in params
.
Conceptually, this is similar to Pearl's do-operator in causal inference, where we intervene on variables by setting them to specific values, effectively cutting off their dependencies on their usual causes in the model.
The invariant
m == unfix(fix(m, params))
should hold for any model m
and parameters params
.
sourceAbstractPPL.unfix
— Functionunfix(model)
Remove any fixed parameters from the model model
, returning a new model without the fixed parameters.
This function reverses the effect of fix
by removing parameter constraints that were previously set. It returns a new model where all previously fixed parameters are allowed to vary according to their original distributions in the model.
The invariant
m == unfix(fix(m, params))
should hold for any model m
and parameters params
.
sourceDensityInterface.logdensityof
— Functionlogdensityof(model, trace)
Evaluate the (possibly unnormalized) density of the model specified by the probabilistic program in model
, at specific values for the random variables given through trace
.
trace
can be of any supported internal trace type, or a fixed probability expression.
logdensityof
should interact with conditioning and deconditioning in the way required by probability theory.
sourceAbstractPPL.AbstractContext
— TypeAbstractContext
Common base type for evaluation contexts.
sourceAbstractPPL.evaluate!!
— Functionevaluate!!
General API for model operations, e.g. prior evaluation, log density, log joint etc.
sourceAbstract traces
AbstractPPL.AbstractModelTrace
— TypeAbstractModelTrace
Common base class for various trace or "variable info" types.
sourceSettings
This document was generated with Documenter.jl version 1.7.0 on Friday 25 October 2024. Using Julia version 1.11.1.
+
diff --git a/previews/PR109/index.html b/previews/PR109/index.html
index c00c824..d37a103 100644
--- a/previews/PR109/index.html
+++ b/previews/PR109/index.html
@@ -1,2 +1,461 @@
-Home · AbstractPPL AbstractPPL.jl
A lightweight package containing interfaces and associated APIs for modelling languages for probabilistic programming.
Settings
This document was generated with Documenter.jl version 1.7.0 on Friday 25 October 2024. Using Julia version 1.11.1.
+Home · AbstractPPL
+
+
+
+
+
+AbstractPPL.jl
A lightweight package containing interfaces and associated APIs for modelling languages for probabilistic programming.
Settings
This document was generated with Documenter.jl version 1.7.0 on Friday 25 October 2024. Using Julia version 1.11.1.
+
diff --git a/previews/PR81/api/index.html b/previews/PR81/api/index.html
index 03f9db4..51ae43e 100644
--- a/previews/PR81/api/index.html
+++ b/previews/PR81/api/index.html
@@ -457,6 +457,7 @@
});
+
API
VarNames
AbstractPPL.VarName
— TypeVarName{sym}(optic=identity)
A variable identifier for a symbol sym
and optic optic
.
The Julia variable in the model corresponding to sym
can refer to a single value or to a hierarchical array structure of univariate, multivariate or matrix variables. The field lens
stores the indices requires to access the random variable from the Julia variable indicated by sym
as a tuple of tuples. Each element of the tuple thereby contains the indices of one optic operation.
VarName
s can be manually constructed using the VarName{sym}(optic)
constructor, or from an optic expression through the @varname
convenience macro.
Examples
julia> vn = VarName{:x}(Accessors.IndexLens((Colon(), 1)) ⨟ Accessors.IndexLens((2, )))
x[:, 1][2]
diff --git a/previews/PR81/index.html b/previews/PR81/index.html
index f85550b..5bca4d3 100644
--- a/previews/PR81/index.html
+++ b/previews/PR81/index.html
@@ -457,5 +457,6 @@
});
+
AbstractPPL.jl
A lightweight package containing interfaces and associated APIs for modelling languages for probabilistic programming.
Settings
This document was generated with Documenter.jl version 1.7.0 on Friday 25 October 2024. Using Julia version 1.11.1.