pystruct.models.DirectionalGridCRF(n_states=None, n_features=None, inference_method=None, neighborhood=4)[source]¶CRF in which each direction of edges has their own set of parameters.
Pairwise potentials are not symmetric and are independend for each kind of edges. This leads to n_classes * n_features parameters for unary potentials and n_edge_features * n_classes ** 2 parameters for edge potentials. The number of edge-types is two for a 4-connected neighborhood (horizontal and vertical) or 4 for a 8 connected neighborhood (additionally two diagonals).
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=None
inference_method : string, default=None
neighborhood : int, default=4
|
|---|
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) |
joint_feature(x, y)[source]¶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 : ndarray, shape (width, height, n_features)
y : ndarray or tuple
|
|---|---|
| Returns: | p : ndarray, shape (size_joint_feature,)
|