Beispiel #1
0
    centroids = init_centroids.clone()

    states = []
    for s_idx in range(n_states):
        precisions = torch.ones(2)
        states.append(DiagNormalModel(centroids[s_idx], precisions))

    hmm = HiddenMarkovModel(states, T0=T0, T=T)

    converged = hmm.fit(X, epsilon=1e-8)

    print()
    print('CONVERGED', converged)
    print()

    score = hmm.log_prob(X)  # + hmm.log_parameters_prob()
    print('ll', score)
    # print('ll (no prior)', hmm.log_prob(X))

    print("Pi Matrix: ")
    print(hmm.T0)

    # print("Transition Matrix: ")
    # print(hmm.T)
    # assert np.allclose(transition.exp().data.numpy(), True_T, atol=0.1)
    # print()
    # print("Emission Matrix: ")
    # for s in hmm.states:
    #     print("Means")
    #     print(list(s.parameters())[0])