cbp.node¶
cbp.node.base_node¶
-
class
cbp.node.base_node.
BaseNode
(node_coef, potential)[source]¶ Bases:
abc.ABC
All kinds node must inherit :class ~cbp.node.BaseNode
-
abstract
cal_bethe
(margin) → float[source]¶ calculate the bethe energy
- Returns
bethe energy on this node
- Return type
-
abstract
make_message
(recipient_node) → numpy.ndarray[source]¶ produce the val of message from current node to the recipient_node
- Parameters
recipient_node ([type]) – target node
- Returns
content of the message
- Return type
np.ndarray
-
property
potential
¶
-
abstract
cbp.node.factor_node¶
-
class
cbp.node.factor_node.
FactorNode
(connections, potential, coef=1)[source]¶ Bases:
cbp.node.base_node.BaseNode
Factor Node in factor graph
- Add new attr:
isconstrained
Fixed marginal or nothat_c_ialpha
See Norm-Product paperlast_innerparenthese_msg
See Norm-Product paper
-
get_varnode_extra_term
(node_name)[source]¶ Norm-Product Belief Propagation, n_{i -> alpha} second term This term is always 1 in stardard bp
cbp.node.var_node¶
-
class
cbp.node.var_node.
VarNode
(rv_dim, potential=None, constrained_marginal=None, node_coef=1)[source]¶ Bases:
cbp.node.base_node.BaseNode
Variable Node in Factor graph
Add new attr: *
isconstrained
Fixed marginal or not *hat_c_i
See Norm-Product paper