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

auto_coef(node_map, assign_policy=None)[source]
abstract cal_bethe(margin)float[source]

calculate the bethe energy

Returns

bethe energy on this node

Return type

float

cal_cnp_coef()[source]
check_before_run(node_map)[source]
format_name(name)[source]
get_connections()[source]
make_init_message(recipient_node_name)[source]
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
register_connection(node_name)[source]
register_nodes(node_map)[source]
reset()[source]
reset_node_coef(coef)[source]
search_msg_index(message_list, node_name)[source]
search_node_index(node_name)[source]
send_message(recipient_node, is_silent=True)[source]
sendin_message(is_silent=True)[source]
sendout_message(is_silent=True)[source]
store_message(message)[source]

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 not

  • hat_c_ialpha See Norm-Product paper

  • last_innerparenthese_msg See Norm-Product paper

auto_coef(node_map, assign_policy=None)[source]
cal_bethe(margin)[source]

calculate the bethe energy

Returns

bethe energy on this node

Return type

float

cal_cnp_coef()[source]
cal_inner_parentheses(recipient_node)[source]
check_before_run(node_map)[source]
check_potential(node_map)[source]
get_hat_c_ialpha(node_name)[source]
get_i_alpha(connection_name)[source]
get_varnode_extra_term(node_name)[source]

Norm-Product Belief Propagation, n_{i -> alpha} second term This term is always 1 in stardard bp

make_message(recipient_node)[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

marginal()[source]
reformat_message(message)[source]
set_i_alpha(connection_name, value)[source]
store_message(message)[source]
summation(potential, node)[source]

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

auto_coef(node_map, assign_policy=None)[source]
cal_bethe(margin)[source]

calculate the bethe energy

Returns

bethe energy on this node

Return type

float

cal_cnp_coef()[source]
make_message(recipient_node)[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

make_message_bp(recipient_node)[source]
marginal()[source]