pystruct.models.GridCRF

class pystruct.models.GridCRF(n_states=None, n_features=None, inference_method=None, neighborhood=4)[source]

Pairwise CRF on a 2d grid.

Pairwise potentials are symmetric and the same for all edges. This leads to n_classes parameters for unary potentials and n_classes * (n_classes + 1) / 2 parameters for edge potentials.

Unary evidence x is given as array of shape (width, height, n_features), labels y are given as array of shape (width, height). Grid sizes do not need to be constant over the dataset.

Parameters:

n_states : int, default=2

Number of states for all variables.

inference_method : string, default=”ad3”

Function to call do do inference and loss-augmented inference. Possible values are:

  • ‘max-product’ for max-product belief propagation.

    Recommended for chains an trees. Loopy belief propagatin in case of a general graph.

  • ‘lp’ for Linear Programming relaxation using cvxopt.

  • ‘ad3’ for AD3 dual decomposition.

  • ‘qpbo’ for QPBO + alpha expansion.

  • ‘ogm’ for OpenGM inference algorithms.

neighborhood : int, default=4

Neighborhood defining connection for each variable in the grid. Possible choices are 4 and 8.

Methods

batch_inference(X, w[, relaxed])
batch_joint_feature(X, Y[, Y_true])
batch_loss(Y, Y_hat)
batch_loss_augmented_inference(X, Y, w[, ...])
continuous_loss(y, y_hat)
inference(x, w[, relaxed, return_energy])
initialize(X, Y)
joint_feature(x, y) Feature vector associated with instance (x, y).
loss(y, y_hat)
loss_augmented_inference(x, y, w[, relaxed, ...])
max_loss(y)
__init__(n_states=None, n_features=None, inference_method=None, neighborhood=4)[source]
joint_feature(x, y)

Feature vector associated with instance (x, y).

Feature representation joint_feature, such that the energy of the configuration (x, y) and a weight vector w is given by np.dot(w, joint_feature(x, y)).

Parameters:

x : tuple

Unary evidence.

y : ndarray or tuple

Either y is an integral ndarray, giving a complete labeling for x. Or it is the result of a linear programming relaxation. In this case, y=(unary_marginals, pariwise_marginals).

Returns:

p : ndarray, shape (size_joint_feature,)

Feature vector associated with state (x, y).