저는 Mac OS X에서 ghmm python 모듈을 Python 2.7과 함께 사용하려고합니다. 나는 모든 설치 얻을 관리했습니다, 나는 파이썬 환경에서 ghmm 가져올 수 있습니다,하지만 난이 프로그램을 실행할 때 오류가합니다 (ghmm '튜토리얼'에서) (UnfairCasino 여기 http://ghmm.sourceforge.net/UnfairCasino.py을 찾을 수 있습니다)이 있습니다 :GHMM - NULL 포인터에 m_free를 시도했습니다.
from ghmm import *
from UnfairCasino import test_seq
sigma = IntegerRange(1,7)
A = [[0.9, 0.1], [0.3, 0.7]]
efair = [1.0/6] * 6
eloaded = [3.0/13, 3.0/13, 2.0/13, 2.0/13, 2.0/13, 1.0/13]
B = [efair, eloaded]
pi = [0.5] * 2
m = HMMFromMatrices(sigma, DiscreteDistribution(sigma), A, B, pi)
v = m.viterbi(test_seq)
는 특히이 오류가 얻을 :
GHMM ghmm.py:148 - sequence.c:ghmm_dseq_free(1199): Attempted m_free on NULL pointer. Bad program, BAD! No cookie for you. python(52313,0x7fff70940cc0) malloc: * error for object 0x74706d6574744120: pointer being freed was not allocated * set a breakpoint in malloc_error_break to debug Abort trap
을 난에 "DEBUG"밖으로 로그 인쇄를 ghmm.py 로거를 설정할 때 다음 직전 :
GHMM ghmm.py:2333 - HMM.viterbi() -- begin
GHMM ghmm.py:849 - EmissionSequence.asSequenceSet() -- begin >
GHMM ghmm.py:862 - EmissionSequence.asSequenceSet() -- end >
Traceback (most recent call last):
File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/logging/init.py", line 842, in emit
msg = self.format(record)
File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/logging/init.py", line 719, in format
return fmt.format(record)
File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/logging/init.py", line 464, in format
record.message = record.getMessage()
File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/logging/init.py", line 328, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Logged from file ghmm.py, line 1159
Traceback (most recent call last):
File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/logging/init.py", line 842, in emit
msg = self.format(record)
File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/logging/init.py", line 719, in format
return fmt.format(record)
File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/logging/init.py", line 464, in format
record.message = record.getMessage()
File "/Library/Frameworks/EPD64.framework/Versions/7.1/lib/python2.7/logging/init.py", line 328, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
Logged from file ghmm.py, line 949
GHMM ghmm.py:2354 - HMM.viterbi() -- end
GHMM ghmm.py:1167 - del SequenceSubSet >
그래서 나는 그것을 가지고 의심 Viterbi 함수가 완료되면 시퀀스가 삭제되지만, 파이썬 코드, C 코드를 수정해야하는지, 아니면 ghmm과 래퍼를 다르게 컴파일해야하는지 잘 모르겠습니다. 지난 4 일간이 라이브러리를 사용하려고 할 때 어떤 도움이나 제안이라도 대단히 감사하겠습니다.
작동합니다! 결과가 정확한지 확실하지 않은 ... 그러나 그것은 깨달았습니다! – Alexander