Exemple #1
0
def test_log_crf(x, train, c, dimX, dimY, from_file=True):
    logCrf = log_crf_wrapper(x, train, dimX, dimY, from_file=from_file)
    model = CRFModel(dimX, dimY)
    #    print(x)
    model.load_X(x, from_file=from_file)
    W = model._W  # column format
    T = model._T  # column format
    # Compute the objective value of CRF
    f = (-c * logCrf) + 0.5 * np.sum(W * W) + 0.5 * np.sum(
        T * T)  # objective log-likelihood + regularizer
    #    print(f)
    return f
Exemple #2
0
def crf_obj(x, train_data, c):
    """Compute the CRF objective and gradient on the list of words (word_list)
    evaluated at the current model x (w_y and T, stored as a vector)
    """
    print("Evaluating grad")
    global iteration
    iteration += 1
    print(iteration)
    # x is a vector as required by the solver.
    logCrf = log_crf_wrapper(x, train_data, 128, 26, from_file=False)
    model = CRFModel(128, 26)
    model.load_X(x, from_file=False)
    W = model._W  # column format
    T = model._T  # column format
    # Compute the objective value of CRF
    f = (-c * logCrf) + (0.5 * np.sum(W * W)) + (
        0.5 * np.sum(T * T))  # objective log-likelihood + regularizer
    reg = np.concatenate([W.T.reshape(-1), T.T.reshape(-1)])
    g = grad_crf_wrapper(x, train_data, 128, 26, from_file=False)
    g = -c * g + reg
    return [f, g]