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.

count_node_names()

Counts the number of times each node name occurs in the graph.

count_var_names()

Counts the number of times each variable name occurs in the graph.

groups()

Collects the groups from all nodes and variables.

plot_nodes()

Plots all nodes in the graph.

plot_vars()

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 the new node.

replace_var(old, new)

Replaces the old with the new variable.

transform(var[, bijector])

Transforms a variable by adding a new transformed variable as an input.

update()

Updates all nodes in the graph.

Attributes

log_lik_node

The user-defined log-likelihood node.

log_prior_node

The user-defined log-prior node.

log_prob_node

The user-defined log-probability node.

nodes

The nodes that were explicitly added to the graph.

vars

The variables that were explicitly added to the graph.