在python中实现Viterbi算法时出错

2024-06-17 08:53:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我是数据科学新手,尝试从github运行Viterbi代码,但当我将参数传递给函数时,它显示错误 只有整数、切片(:)、省略号(...),新轴(None)和整数或布尔数组是有效的索引

维特比算法的我的功能

def Viterbi(pi, a, b, obs):
    nStates = np.shape(b)[0]
    T = np.shape(obs)[0]
    path = np.zeros(T)
    delta = np.zeros((nStates, T))
    phi = np.zeros((nStates, T))
    delta[:, 0] = pi * b[:, obs[0]]
    phi[:, 0] = 0
    for t in range(1,T):
        for s in range(nStates):
            delta[s, t] = np.max(delta[:, t-1] * a[:, s]) * b[s, obs[t]]
            phi[s, t] = np.argmax(delta[:, t-1] * a[:, s])
   path[T-1] = np.argmax(delta[:,T-1])
   for t in range(T-2, -1, -1):
       path[t] = phi[path[t+1], t+1]
   return path, delta, phi

我将函数参数作为努比·恩达雷. 有人能告诉我这个错误是什么以及如何解决吗

错误截图 Scrrenshot of the error

连接我从那里得到代码的链接 code link


Tags: path代码infor错误nppizeros