beanmachine.ppl.compiler.bm_graph_builder module

class beanmachine.ppl.compiler.bm_graph_builder.BMGraphBuilder(execution_context: beanmachine.ppl.compiler.execution_context.ExecutionContext = <beanmachine.ppl.compiler.execution_context.ExecutionContext object>)

Bases: object

add_addition(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_bernoulli(probability: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BernoulliNode
add_bernoulli_logit(probability: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BernoulliLogitNode
add_beta(alpha: beanmachine.ppl.compiler.bmg_nodes.BMGNode, beta: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BetaNode
add_binomial(count: beanmachine.ppl.compiler.bmg_nodes.BMGNode, probability: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BinomialNode
add_binomial_logit(count: beanmachine.ppl.compiler.bmg_nodes.BMGNode, probability: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BinomialLogitNode
add_bitand(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_bitor(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_bitxor(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_boolean(value: bool) beanmachine.ppl.compiler.bmg_nodes.BooleanNode
add_boolean_matrix(value: torch.Tensor) beanmachine.ppl.compiler.bmg_nodes.ConstantBooleanMatrixNode
add_broadcast(value: beanmachine.ppl.compiler.bmg_nodes.BMGNode, rows: beanmachine.ppl.compiler.bmg_nodes.NaturalNode, columns: beanmachine.ppl.compiler.bmg_nodes.NaturalNode) beanmachine.ppl.compiler.bmg_nodes.BroadcastNode
add_categorical(probability: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.CategoricalNode
add_categorical_logit(probability: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.CategoricalLogitNode
add_chi2(df: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.Chi2Node
add_choice(condition: beanmachine.ppl.compiler.bmg_nodes.BMGNode, *values: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.ChoiceNode
add_cholesky(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_column_index(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_complement(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_constant(value: Any) beanmachine.ppl.compiler.bmg_nodes.UntypedConstantNode

This takes any constant value of a supported type, creates a constant graph node for it, and adds it to the builder

add_constant_of_matrix_type(value: Any, node_type: beanmachine.ppl.compiler.bmg_types.BMGMatrixType) beanmachine.ppl.compiler.bmg_nodes.ConstantNode
add_constant_of_type(value: Any, node_type: beanmachine.ppl.compiler.bmg_types.BMGLatticeType) beanmachine.ppl.compiler.bmg_nodes.ConstantNode

This takes any constant value of a supported type and creates a constant graph node of the stated type for it, and adds it to the builder

add_constant_tensor(value: torch.Tensor) beanmachine.ppl.compiler.bmg_nodes.ConstantTensorNode
add_dirichlet(concentration: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.DirichletNode
add_division(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_elementwise_multiplication(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_equal(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_exp(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_exp2(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_exp_product(*inputs: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.ExpProductFactorNode
add_expm1(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_fill_matrix(value: beanmachine.ppl.compiler.bmg_nodes.BMGNode, rows: beanmachine.ppl.compiler.bmg_nodes.NaturalNode, columns: beanmachine.ppl.compiler.bmg_nodes.NaturalNode) beanmachine.ppl.compiler.bmg_nodes.FillMatrixNode
add_flat() beanmachine.ppl.compiler.bmg_nodes.FlatNode
add_floordiv(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_gamma(concentration: beanmachine.ppl.compiler.bmg_nodes.BMGNode, rate: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.GammaNode
add_greater_than(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_greater_than_equal(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_halfcauchy(scale: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.HalfCauchyNode
add_halfnormal(sigma: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.HalfNormalNode
add_if_then_else(condition: beanmachine.ppl.compiler.bmg_nodes.BMGNode, consequence: beanmachine.ppl.compiler.bmg_nodes.BMGNode, alternative: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_in(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_index(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_invert(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_is(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_is_not(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_item(input: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_less_than(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_less_than_equal(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_lkj_cholesky(dim: beanmachine.ppl.compiler.bmg_nodes.BMGNode, eta: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.LKJCholeskyNode
add_log(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_log10(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_log1mexp(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_log1p(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_log2(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_log_prob(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.LogProbNode
add_logaddexp(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.LogAddExpNode
add_logistic(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_logsumexp(*inputs: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.LogSumExpNode
add_logsumexp_torch(input: beanmachine.ppl.compiler.bmg_nodes.BMGNode, dim: beanmachine.ppl.compiler.bmg_nodes.BMGNode, keepdim: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.LogSumExpTorchNode
add_logsumexp_vector(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.LogSumExpVectorNode
add_lshift(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_matrix_addition(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_matrix_complement(matrix: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_matrix_exp(matrix: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_matrix_log(matrix: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_matrix_log1mexp(matrix: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_matrix_multiplication(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_matrix_negate(matrix: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_matrix_phi(matrix: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_matrix_scale(scalar: beanmachine.ppl.compiler.bmg_nodes.BMGNode, matrix: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_matrix_sum(matrix: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_mod(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_multi_addition(*inputs: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_multi_multiplication(*inputs: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_multiplication(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_natural(value: int) beanmachine.ppl.compiler.bmg_nodes.NaturalNode
add_natural_matrix(value: torch.Tensor) beanmachine.ppl.compiler.bmg_nodes.ConstantNaturalMatrixNode
add_neg_real(value: float) beanmachine.ppl.compiler.bmg_nodes.NegativeRealNode
add_neg_real_matrix(value: torch.Tensor) beanmachine.ppl.compiler.bmg_nodes.ConstantNegativeRealMatrixNode
add_negate(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_node(node: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode

This adds a node we’ve recently created to the node set; it maintains the invariant that all the input nodes are also added.

add_normal(mu: beanmachine.ppl.compiler.bmg_nodes.BMGNode, sigma: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.NormalNode
add_not(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_not_equal(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_not_in(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_observation(observed: beanmachine.ppl.compiler.bmg_nodes.SampleNode, value: Any) beanmachine.ppl.compiler.bmg_nodes.Observation
add_phi(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_poisson(rate: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.PoissonNode
add_pos_real(value: float) beanmachine.ppl.compiler.bmg_nodes.PositiveRealNode
add_pos_real_matrix(value: torch.Tensor) beanmachine.ppl.compiler.bmg_nodes.ConstantPositiveRealMatrixNode
add_power(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_probability(value: float) beanmachine.ppl.compiler.bmg_nodes.ProbabilityNode
add_probability_matrix(value: torch.Tensor) beanmachine.ppl.compiler.bmg_nodes.ConstantProbabilityMatrixNode
add_query(operator: beanmachine.ppl.compiler.bmg_nodes.BMGNode, rvidentifier: beanmachine.ppl.model.rv_identifier.RVIdentifier) beanmachine.ppl.compiler.bmg_nodes.Query
add_real(value: float) beanmachine.ppl.compiler.bmg_nodes.RealNode
add_real_matrix(value: torch.Tensor) beanmachine.ppl.compiler.bmg_nodes.ConstantRealMatrixNode
add_rshift(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_sample(operand: beanmachine.ppl.compiler.bmg_nodes.DistributionNode) beanmachine.ppl.compiler.bmg_nodes.SampleNode
add_simplex(value: torch.Tensor) beanmachine.ppl.compiler.bmg_nodes.ConstantSimplexMatrixNode
add_squareroot(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_studentt(df: beanmachine.ppl.compiler.bmg_nodes.BMGNode, loc: beanmachine.ppl.compiler.bmg_nodes.BMGNode, scale: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.StudentTNode
add_subtraction(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_sum(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_switch(*elements: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.SwitchNode
add_tensor(size: torch.Size, *data: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.TensorNode
add_to_int(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_to_matrix(rows: beanmachine.ppl.compiler.bmg_nodes.NaturalNode, columns: beanmachine.ppl.compiler.bmg_nodes.NaturalNode, *data: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.ToMatrixNode
add_to_negative_real(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_to_negative_real_matrix(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_to_positive_real(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_to_positive_real_matrix(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_to_probability(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_to_real(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_to_real_matrix(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
add_transpose(operand: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.TransposeNode
add_uniform(low: beanmachine.ppl.compiler.bmg_nodes.BMGNode, high: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.UniformNode
add_vector_index(left: beanmachine.ppl.compiler.bmg_nodes.BMGNode, right: beanmachine.ppl.compiler.bmg_nodes.BMGNode) beanmachine.ppl.compiler.bmg_nodes.BMGNode
all_ancestor_nodes() List[beanmachine.ppl.compiler.bmg_nodes.BMGNode]

Returns a topo-sorted list of nodes that are ancestors to any sample, observation, query or factor.

all_nodes() List[beanmachine.ppl.compiler.bmg_nodes.BMGNode]

Returns a topo-sorted list of all nodes.

all_observations() List[beanmachine.ppl.compiler.bmg_nodes.Observation]
execution_context: beanmachine.ppl.compiler.execution_context.ExecutionContext
remove_leaf(node: beanmachine.ppl.compiler.bmg_nodes.BMGNode) None

This removes a leaf node from the builder, and ensures that the output edges of all its input nodes are removed as well.

remove_node(node: beanmachine.ppl.compiler.bmg_nodes.BMGNode) None

This removes a node from the builder, and ensures that the output edges of all its input nodes are removed as well.

beanmachine.ppl.compiler.bm_graph_builder.phi(x: Any) Any
beanmachine.ppl.compiler.bm_graph_builder.rv_to_query(bmg: beanmachine.ppl.compiler.bm_graph_builder.BMGraphBuilder) Dict[beanmachine.ppl.model.rv_identifier.RVIdentifier, beanmachine.ppl.compiler.bmg_nodes.Query]