2014-05-14 10 views
5

मैं अक्षरों की एक स्ट्रिंग में राज्यों का विश्लेषण करने के लिए आर में एचएमएम कार्यान्वयन की तलाश में था और एचएमएम लाइब्रेरी धीमी गति से चलती प्रतीत होती है, तो मैं आरएचएमएम लाइब्रेरी का उपयोग कर रहा हूं।r - viterbi RHmm त्रुटि सुरक्षा स्टैक ओवरफ़्लो

मेरे डेटा यह मेरा डेटा का एक नमूना है 1,953,138 प्रतीकों (यू, डी, एन)

की एक श्रृंखला है:

string <- sample(c("D","U","N"),1953138,replace=T) 

फिटिंग HMM

HMM <- HMMFit(string,dis="DISCRETE",nStates=3)$HMM 

viterbi चल रहा है और यहां वह जगह है जहां मुझे त्रुटि मिली है

viterbi_results <- viterbi(HMM,string) 
#Error: protect(): protection stack overflow 
अगर मैं चलाने का प्रयास वास्तव में

viterbi_results <- viterbi(HMM,string[1:49963]) 

: 363,210

लेकिन अगर मैं स्ट्रिंग viterbi (का केवल एक सबसेट का उपयोग करें) बस ठीक काम करता है

viterbi_results <- viterbi(HMM,string[1:49964]) 
#Error: protect(): protection stack overflow 

मैं एक ही ढेर अतिप्रवाह त्रुटि मिलती है, तो 49,964 वेक्टर में तत्व सीमा

मुझे लगता है कि समस्या इस तथ्य से संबंधित हो सकती है कि --max-ppsize का डिफ़ॉल्ट आर विकल्प 50000 है, लेकिन इस पैरामीटर को इसकी सीमा में बदलना - मैक्स-पिप्सize 500000 नहीं है #इस समस्या को ठीक करो। हालांकि viterbi() में वेक्टर सीमा बढ़ जाती है, यह स्ट्रिंग वेक्टर में 49 9 60 तत्वों के आसपास 49 9 64 तत्वों से कहीं भी जाती है।

मैंने भाग में viterbi एल्गोरिदम चलाने की कोशिश की। सबसे पहले मैं 49,960 तत्वों की मात्रा में स्ट्रिंग splited और उनमें से प्रत्येक के लिए viterbi लागू होते हैं, लेकिन मैं एक ही त्रुटि

list_string <- split(string, ceiling(seq_along(string)/49960)) 

viterbi_results <- lapply(list_string,function(x) viterbi(HMM,x)$states) 
#Error: protect(): protection stack overflow 

यहाँ मिल गया stackoverflow में मैं एक मैं LINK हो रहा है के लिए एक ऐसी ही समस्या का पता चला। स्पष्ट रूप से समस्या का स्रोत एक लूप के अंदर एक सुरक्षा थी जिसकी आवश्यकता नहीं है। मैं viterbi फ़ंक्शन के C++ स्रोत कोड में कूद गया लेकिन एक भी सुरक्षा नहीं है।

मैंने ulimit -s unlimited भी कोशिश की, लेकिन मुझे एक ही त्रुटि मिल रही है।

मैं यूनिक्स पर रैम स्मृति के 1009 GB के साथ RHmm package

धन्यवाद करने के लिए

लिंक एक बहुत मदद के लिए काम कर रहा हूँ!

+0

इम टिप्पणियों के लाखों लोगों के साथ एक वेक्टर के साथ छोड़कर ठीक उसी समस्या में चल रहा है - क्या तुमने कभी समस्या को हल किया? –

+0

अभी तक नहीं, मैंने डेवलपर्स से संपर्क करने की कोशिश की लेकिन अब तक कोई भाग्य नहीं है। जैसा कि मैंने उपर्युक्त उल्लेख किया है, – Sierra

उत्तर

0

वृद्धि बिंदु ढेर आकार जब R शुरू होता है:

R --max-pp-size=100000 
+0

, मैंने - मैक्स-पिप्सिज 500000 का उपयोग किया जो आर में सीमा है। फिर भी, त्रुटि पॉप आउट हो गई है। – Sierra

संबंधित मुद्दे