2017-04-15 12 views
0

나는 다음과 같은 오류를 받고 있어요에 hidden_markov 작업 나는 브로드 캐스트 오류가 무엇인지와 문서를 통해 갔다 train.hmm()ValueError를 파이썬

ValueError: operands could not be broadcast together with shapes (7,20) (1,7) 

실행할 때. 하지만 매트릭스의 크기를 변경할 수 없어 다른 곳에서 오류가 발생합니다. 코드는 다음과 같습니다.

start_probability = np.matrix('0.5 0.02 0.18 0.05 0.01 0.2 0.04 ') 
transition_probability = np.matrix('0.9 0.012 0.012 0.012 0.002 0.05 0.012 \ 
; 0.03 0.35 0.05 0.05 0.02 0.45 0.05 \ 
; 0.03 0.05 0.45 0.05 0.02 0.35 0.05 \ 
; 0.1 0.1 0.1 0.4 0.1 0.1 0.1 \ 
; 0.1 0.1 0.1 0.1 0.4 0.1 0.1 \ 
; 0.2 0.05 0.05 0.05 0.05 0.4 0.2 \ 
; 0.12 0.12 0.12 0.12 0.01 0.12 0.39') 
emission_probability = np.matrix(np.ones((7, 20)) * 0.05) 

test = hmm(states,possible_observation,start_probability,transition_probability,emission_probability) 
observations = ['A', 'S','T','A'] 
obs4 = ['C', 'A','G'] 
observation_tuple = [] 
observation_tuple.extend([observations,obs4]) 
quantities_observations = [10, 20] 
num_iter=1000 
e,t,s = test.train_hmm(observation_tuple,num_iter,quantities_observations) 

오류는 마지막 줄과 일치합니다. start_prbability 또는 emission_probability 행렬을 바꾼 경우 test = hmm() 행에 오류가 표시됩니다.

내가 뭘 잘못하고 있니?

답변

2

변경 라인 hmm_class.py의 349,

emProbNew = emProbNew/ np.reshape(em_norm.transpose(),[-1,1]) 

아니 내가 알고있는 최고의 솔루션,하지만 난 저자가 Python 항상 그가 부문 여기 무슨 의미인지 알 수 없을 것이라는 사실을 간과 생각합니다.

+0

네 개의 공백 또는 {} 모양의 코드 단추를 사용하여 답변을보다 쉽게 ​​읽을 수 있도록 코드의 형식을 지정하십시오. – JoshKopen

+0

도서관에 실수가 있다는 뜻이 아닙니까? 왜 주어진 도서관의 코드에 간섭해야합니까? – Rama