2016-01-28 12 views
11

मैं 970 नमूने पर प्रशिक्षण और 243 नमूने पर सत्यापन कर रहा हूं।केरास में मॉडल को फ़िट करते समय बैच आकार और युग की संख्या कितनी बड़ी होनी चाहिए?

कैरस में मॉडल को फिट करने के दौरान बैच आकार और युग की संख्या कितनी बड़ी होनी चाहिए ताकि val_acc को अनुकूलित किया जा सके? डेटा इनपुट आकार के आधार पर उपयोग करने के लिए अंगूठे का कोई नियम है?

+4

मैं कहूंगा कि यह आपके डेटा पर निर्भर करता है। यदि आप बस कुछ सरल कार्य के साथ खेल रहे हैं, जैसे एक्सओआर-क्लासिफायर, 1 99 के बैच आकार के साथ कुछ सौ युग 99.9% सटीकता की तरह प्राप्त करने के लिए पर्याप्त हैं। एमएनआईएसटी के लिए मैंने ज्यादातर बैच आकार और 100 से कम युग के लिए लगभग 10 से 100 के साथ उचित परिणाम अनुभव किए। आपकी समस्या के ब्योरे के बिना, आपके आर्किटेक्चर, आपके सीखने के नियम/लागत कार्य, आपका डेटा और इस पर कोई भी इसका सही जवाब नहीं दे सकता है। – daniel451

उत्तर

14

चूंकि आपके पास एक बहुत छोटा डेटासेट (~ 1000 नमूने) है, तो आप शायद 32 के बैच आकार का उपयोग करके सुरक्षित रहेंगे, जो कि काफी मानक है। इससे आपकी समस्या के लिए कोई बड़ा अंतर नहीं आएगा जबतक कि आप सैकड़ों हजारों या लाखों अवलोकनों पर प्रशिक्षण नहीं दे रहे हैं।

सामान्य में:

पर बैच आकार और अवधियों आपके सवालों के जवाब के लिए बड़ा बैच आकार प्रशिक्षण में तेजी से प्रगति में परिणाम है, लेकिन नहीं है हमेशा की तरह तेजी से जमा होते है। छोटे बैच आकार धीमे ट्रेन, लेकिन तेजी से अभिसरण कर सकते हैं। यह निश्चित रूप से निर्भर निर्भर है।

सामान्य में, मॉडल एक बिंदु पर प्रशिक्षण के अधिक युगों के साथ सुधार करते हैं। वे अभिसरण के रूप में सटीकता में पठार शुरू कर देंगे। 50 की तरह कुछ कोशिश करें और युग की साजिश संख्या (एक्स अक्ष) बनाम सटीकता (वाई अक्ष)। आप देखेंगे कि यह कहां से बाहर है।

आपके डेटा का प्रकार और/या आकार क्या है? क्या ये छवियां हैं, या सिर्फ टैब्यूलर डेटा? यह एक महत्वपूर्ण जानकारी है।

+1

"बड़े बैच आकार ट्रेन धीमे": नहीं, एक बड़ा बैच आकार ट्रेन की गति को बढ़ाता है (कम्प्यूटेशनल रूप से, प्रति नमूना समय) –

+0

@ मार्कजे। स्कीमेट यह आवश्यक नहीं है क्योंकि मेमोरी ट्रांसफर ओवरहेड है। एक निश्चित बिंदु पर, GPU को बैच स्थानांतरित करने के लिए आवश्यक समय गति लाभ से बड़ा हो जाता है। अधिक गहन जानकारी के लिए इस ब्लॉग को देखें - http://www.marekrei.com/blog/ – layser

+0

बेशक सभी आकारों के लिए नहीं। लेकिन सामान्य बयान, कि बड़े बैच ट्रेन धीमी है गलत है। अंगूठे का नियम यह है कि जब तक आप अपने GPU (यदि आप GPU का भी उपयोग करते हैं) तक बैंडविड्थ की बाधा तक पहुंच जाते हैं, तब तक यह तेज़ होता है। –

3

मैं भाषण डेटा पर गैर-रैखिक प्रतिगमन करने के लिए केरा का उपयोग करता हूं। मेरी प्रत्येक भाषण फाइलें मुझे ऐसी विशेषताएं देती हैं जो टेक्स्ट फ़ाइल में 25000 पंक्तियां होती हैं, प्रत्येक पंक्ति में 257 वास्तविक मूल्यवान संख्याएं होती हैं। मैं 1 छिपे हुए परत के साथ केरास में Sequential मॉडल को प्रशिक्षित करने के लिए 100 का बैच आकार, युग 50 का उपयोग करता हूं। प्रशिक्षण के 50 युग के बाद, यह val_loss कम से कम अच्छी तरह से अभिसरण करता है।

1

मैंने बाजार मिश्रण मॉडलिंग के लिए गैर रेखीय प्रतिगमन करने के लिए केरा का उपयोग किया। मुझे 3 छिपी हुई परतों के साथ केरास में एक अनुक्रमिक मॉडल को प्रशिक्षण देने के दौरान 32 और युग = 100 के बैच आकार के साथ सर्वोत्तम परिणाम प्राप्त हुए। आम तौर पर 32 या 25 का बैच आकार अच्छा होता है, जब तक आपके पास बड़े डेटासेट नहीं होते हैं। बड़े डेटासेट के मामले में आप 10 के बैच आकार के साथ युग बी/डब्ल्यू 50 से 100 के साथ जा सकते हैं। फिर उपर्युक्त आंकड़ों ने मेरे लिए ठीक काम किया है।

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