GraphBuilder#
- class liesel.model.model.GraphBuilder[source]#
Bases:
object
A graph builder to prepare a
Model
.Constructs a model containing all nodes and variables that were added to the graph builder and their recursive inputs. The outputs of the nodes are not added to the model automatically, so the root nodes always need to be added explicitly.
The standard workflow is to create the nodes and variables, add them to a graph builder, and construct a model from the graph builder. After the model has been constructed, some methods of the graph builder are not available anymore.
Example
>>> a = lsl.Var(1.0, name="a") >>> b = lsl.Var(2.0, name="b") >>> c = lsl.Var(lsl.Calc(lambda x, y: x + y, a, b), name="c") >>> gb = lsl.GraphBuilder() >>> gb.add(c) GraphBuilder(0 nodes, 1 vars) >>> model = gb.build_model() >>> model Model(9 nodes, 3 vars) >>> c.value 3.0 >>> gb.vars []
Methods
add
(*args[, to_float32])Adds nodes, variables or other graph builders to the graph.
add_groups
(*groups[, to_float32])Adds groups to the graph.
build_model
([copy])Builds a model from the graph.
convert_dtype
(from_dtype, to_dtype)Tries to convert the node values in the graph to the specified data type.
copy
()Returns a shallow copy of the graph builder.
Counts the number of times each node name occurs in the graph.
Counts the number of times each variable name occurs in the graph.
groups
()Collects the groups from all nodes and variables.
Plots all nodes in the graph.
Plots all variables in the graph.
rename
(pattern, replacement)Renames all nodes and variables in the graph.
rename_nodes
(pattern, replacement)Renames all nodes in the graph.
rename_vars
(pattern, replacement)Renames all variables in the graph.
replace_node
(old, new)Replaces the
old
with thenew
node.replace_var
(old, new)Replaces the
old
with thenew
variable.transform
(var[, bijector])Transforms a variable by adding a new transformed variable as an input.
update
()Updates all nodes in the graph.
Attributes
The user-defined log-likelihood node.
The user-defined log-prior node.
The user-defined log-probability node.
The nodes that were explicitly added to the graph.
The variables that were explicitly added to the graph.