2012-02-04 19 views
9

मैं एक तंत्रिका नेटवर्क n pybrain, दो आदानों, एक छिपा परत और एक उत्पादन layer.I प्रशिक्षित करने के लिए निम्नलिखित का उपयोग के साथ है:मैं पाइब्रेन में तंत्रिका नेटवर्क के प्रशिक्षण की गणना या निगरानी कैसे कर सकता हूं?

trainer = BackpropTrainer(net,ds) 
trainer.trainUntilConvergence() 

शुद्ध तंत्रिका नेटवर्क है और डी एस ट्रेन डाटा नहीं है।

मेरा प्रश्न यह है कि मैं प्रशिक्षण पूरा करने के लिए आवश्यक समय की गणना कैसे कर सकता हूं या मैं प्रशिक्षण की प्रगति की निगरानी कैसे कर सकता हूं। धन्यवाद।

उत्तर

10

तुम हमेशा BackpropTrainer (स्रोत कोड here) उपवर्ग और अगर maxEpochs का उपयोग कर trainUntilConvergence ओवरराइड, अवधियों को और अवधियों के बीच अनुपात का उपयोग पूर्णता का प्रतिशत ट्रैक कर सकते हैं।

तो maxEpochs का उपयोग नहीं कर आप हमेशा अवधियों की संख्या का अनुमान लगाने के लिए कर सकता है validationerrors में परिवर्तन और continueEpochs के आकार की औसत दर के आधार पर शेष। या केवल सत्यापनकर्ताओं में परिवर्तन की दर की जांच करें। यदि आप समय पर युग मैप करना चाहते हैं तो आपको प्रत्येक युग के समय को प्रोफाइल करना होगा और उन्हें स्टोर करना होगा।

+1

आदर्श रूप में आप trainEpochs का उपयोग करना चाहते हैं()()। युग की एक्स संख्या के लिए ट्रेन, परिणाम की जांच, युग की ट्रेन एक्स संख्या। अभिसरण या अधिकतम युग तक दोहराएं। – NothingMore

2

कुछ भी नहीं है कोड मैं इसके लिए उपयोग करने के अलावा पिछली टिप्पणी में जोड़ने के लिए:

maxepochs=20 
results=[] 
for i in range(len(maxepochs)): 
    aux = trainer.train() 
    results.extend(aux) 
    plt.figure() 
    plt.scatter(range(len(results[0])),results[0]) 
    plt.draw() 

आप हर चक्र में कथानक को एक नया मिलेगा। बहुत अच्छा नहीं है, लेकिन यह मेरे लिए काम करता है।

आशा मैं बजाय trainUntilConvergence को संशोधित करने की मदद चाहते हैं आप

+0

maxepochs एक int है। लेन संपत्ति नहीं है। क्या आपका मतलब परिणाम था। एपेंड (ऑक्स)? – agcala

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