Ejemplo n.º 1
0
def test_time_correct_M(hmm1, hmm2, hmm3):
    M = zeros((hmm1.N, hmm1.N))
    k = 1
    p = 1. / hmm1.N
    timecall("HMM.correct_M       ", hmm1.correct_M, M, k, p)
    timecall("HMM_F.correct_M     ", hmm2.correct_M, M, k, p)
    timecall("HMM_C.CorretM      ", hmm3.correct_M, M, k, p)
Ejemplo n.º 2
0
def test_time_ksi(hmm1, hmm2, hmm3, observation):
    Bo = take(hmm1.B, observation, 0)
    alpha, scale_factors = hmm3.alpha_scaled(hmm3.A, Bo, hmm3.pi)
    beta = hmm3.beta_scaled(hmm3.A, Bo, scale_factors)
    timecall("HMM.ksi            ", hmm1.ksi, hmm1.A, Bo, alpha, beta)
    timecall("HMM_F.ksi          ", hmm2.ksi, hmm2.A, Bo, alpha, beta)
    timecall("HMM_C.ksi          ", hmm3.ksi, hmm3.A, Bo, alpha, beta)
Ejemplo n.º 3
0
def time_alphabeta(size_states, size_observations, op="alpha"): # by size here I mean the size of the space (hidden state space and observation space AKA "alphabet")
    S = range(size_states)
    O = range(size_observations)
    OBS = range(size_observations)*4
    shuffle(OBS)
    test = HMM( S, O )
    test.random_initialisation()

    print OBS
    print test

    test1 = HMM( S, O, test.A, test.B, test.pi )
    bo = take( test.B, OBS, 0 )
    print "bo = take( test.B, OBS, 0 )"
    print str(bo)
    print "A.shape  = ", test.A.shape
    print "bo.shape = ", bo.shape
    a1, s1 = test1.alpha_scaled( test.A, bo, test.pi )
    print "a1,s1",a1,s1
    print "s1.shape = ", s1.shape
    if op == "alpha": timecall( "alpha scaled  ", test1.alpha_scaled, (test.A, bo, test.pi) )
    else:             timecall( "beta scaled   ", test1.beta_scaled,  (test.A, bo, s1) )
Ejemplo n.º 4
0
def test_time_beta(hmm1, hmm2, hmm3, observation):
    Bo = take(hmm1.B, observation, 0)
    alpha, scale_factors = hmm3.alpha_scaled(hmm3.A, Bo, hmm3.pi)
    timecall("HMM.beta_scaled     ", hmm1.beta_scaled, hmm1.A, Bo,
             scale_factors)
    timecall("HMM_F.beta_scaled   ", hmm2.beta_scaled, hmm2.A, Bo,
             scale_factors)
    timecall("HMM_C.beta_scaled   ", hmm3.beta_scaled, hmm3.A, Bo,
             scale_factors)
Ejemplo n.º 5
0
def test_time_update_iter_B(hmm1, hmm2, hmm3, observation):
    Bo = take(hmm1.B, observation, 0)
    obs_ind = hmm3._get_observationIndices(observation)
    alpha, scale_factors = hmm3.alpha_scaled(hmm3.A, Bo, hmm3.pi)
    beta = hmm3.beta_scaled(hmm3.A, Bo, scale_factors)
    gamma = hmm3._gamma(alpha, beta, scale_factors)
    B1 = zeros((hmm1.M, hmm1.N), float, order=hmm1.ORDER)
    B2 = zeros((hmm2.M, hmm2.N), float, order=hmm2.ORDER)
    B3 = zeros((hmm3.M, hmm3.N), float, order=hmm3.ORDER)
    timecall("HMM.update_iter_B    ", hmm1.update_iter_B, gamma, obs_ind, B1)
    timecall("HMM_F.update_iter_B  ", hmm2.update_iter_B, gamma, obs_ind, B2)
    timecall("HMM_C.update_iter_B  ", hmm3.update_iter_B, gamma, obs_ind, B3)
Ejemplo n.º 6
0
def test_time_alpha():
    S = range(20)
    O = range(40)
    OBS = range(40) * 4
    test = HMM(S, O)
    test.set_random_proba()
    test1 = HMM(S, O, test.A, test.B, test.pi)
    test2 = HMM_F(S, O, test.A, test.B, test.pi)
    test3 = HMM_C(S, O, test.A, test.B, test.pi)
    bo = take(test.B, OBS, 0)
    timecall("HMM.alpha_scaled  ", test1.alpha_scaled, test.A, bo, test.pi)
    timecall("HMM_F.alpha_scaled", test2.alpha_scaled, test.A, bo, test.pi)
    timecall("HMM_C.alpha_scaled", test3.alpha_scaled, test.A, bo, test.pi)
Ejemplo n.º 7
0
def test_time_beta():
    S = range(40)
    O = range(80)
    OBS = range(80) * 4
    test = HMM(S, O)
    test.set_random_proba()
    test1 = HMM(S, O, test.A, test.B, test.pi)
    test2 = HMM_F(S, O, test.A, test.B, test.pi)
    test3 = HMM_C(S, O, test.A, test.B, test.pi)
    bo = take(test.B, OBS, 0)
    a1, s1 = test1.alpha_scaled(test.A, bo, test.pi)
    print "A.shape  = ", test.A.shape
    print "bo.shape = ", bo.shape
    print "s1.shape = ", s1.shape
    timecall("HMM.beta_scaled   ", test1.beta_scaled, test.A, bo, s1)
    timecall("HMM_F.beta_scaled ", test2.beta_scaled, test.A, bo, s1)
    timecall("HMM_C.beta_scaled ", test3.beta_scaled, test.A, bo, s1)
Ejemplo n.º 8
0
def test_time_multiple_learn(hmm1, hmm2, hmm3, chains):
    timecall("HMM.multiple_learn  ", hmm1.multiple_learn, chains, 1000, 0)
    timecall("HMM_F.multiple_learn", hmm2.multiple_learn, chains, 1000, 0)
    timecall("HMM_C.multiple_learn", hmm3.multiple_learn, chains, 1000, 0)
Ejemplo n.º 9
0
def test_time_learn(hmm1, hmm2, hmm3, obs):
    timecall("HMM.learn          ", hmm1.learn, obs, 1000, 0)
    timecall("HMM_F.learn        ", hmm2.learn, obs, 1000, 0)
    timecall("HMM_C.learn        ", hmm3.learn, obs, 1000, 0)
Ejemplo n.º 10
0
def test_time_analyze_log(hmm1, hmm2, hmm3, obs):
    timecall("HMM.analyze_log    ", hmm1.analyze_log, obs)
    timecall("HMM_F.analyze_log  ", hmm2.analyze_log, obs)
    timecall("HMM_C.analyze_log  ", hmm3.analyze_log, obs)
Ejemplo n.º 11
0
def test_time_normalize_B(hmm1, hmm2, hmm3):
    SGB = 2 * ones(hmm1.N)
    B_bar = ones((hmm1.M, hmm1.N))
    timecall("HMM.normalize_B     ", hmm1.normalize_B, B_bar, SGB)
    timecall("HMM_F.normalize_B   ", hmm2.normalize_B, B_bar, SGB)
    timecall("HMM_C.normalize_B   ", hmm3.normalize_B, B_bar, SGB)
Ejemplo n.º 12
0
def test_time_alpha(hmm1, hmm2, hmm3, observation):
    bo = take(hmm1.B, observation, 0)
    timecall("HMM.alpha_scaled    ", hmm1.alpha_scaled, hmm1.A, bo, hmm1.pi)
    timecall("HMM_F.alpha_scaled  ", hmm2.alpha_scaled, hmm2.A, bo, hmm2.pi)
    timecall("HMM_C.alpha_scaled  ", hmm3.alpha_scaled, hmm3.A, bo, hmm3.pi)