मॉडल को हर 10 युगों में बचाएं


10

मैं टेनोरफ़्लो वी 2 में सबमॉड्यूल के रूप में परिभाषित केर का उपयोग कर रहा हूं। मैं fit_generator()विधि का उपयोग करके अपने मॉडल को प्रशिक्षित कर रहा हूं । मैं अपने मॉडल को हर 10 युगों में बचाना चाहता हूं। इसे कैसे प्राप्त किया जा सकता है?

कैरस में (tf के एक सबमॉड्यूल के रूप में नहीं), मैं दे सकता हूं ModelCheckpoint(model_savepath,period=10)। लेकिन tf v2 में, उन्होंने इसे बदल दिया है ModelCheckpoint(model_savepath, save_freq)जहां हर मामले में मॉडल को बचाया save_freqजा सकता 'epoch'है। यदि save_freqपूर्णांक है, तो कई नमूनों को संसाधित करने के बाद मॉडल को सहेजा जाता है। लेकिन मैं चाहता हूं कि यह 10 युगों के बाद हो। इसे कैसे प्राप्त किया जा सकता है?

जवाबों:


5

उपयोग tf.keras.callbacks.ModelCheckpointकरना save_freq='epoch'और अतिरिक्त तर्क पास करना period=10

यद्यपि यह आधिकारिक डॉक्स में प्रलेखित नहीं है , लेकिन ऐसा करने का तरीका है (ध्यान दें कि यह प्रलेखित है कि आप पास कर सकते हैं period, बस यह नहीं बताता है कि यह क्या करता है)।


मुझे नीचे चेतावनी मिलती है: WARNING:tensorflow:'period' argument is deprecated. Please use 'save_freq' to specify the frequency in number of samples seen.इसलिए, मुझे लगता है, यह सुविधा जल्द ही समाप्त हो जाएगी। उस स्थिति में, मैं इसे कैसे प्राप्त कर सकता हूं?
नागभूषण एसएन

2
मेरा मानना ​​है कि एकमात्र विकल्प प्रति युग उदाहरणों की संख्या की गणना करना है, और उस पूर्णांक को उस save_freqसमय तक पास करना है, जिसे आप
ब्लूज़ूमर्स

@bluesummers "उदाहरण प्रति युग" यह मेरे बैच आकार, सही होना चाहिए?
टॉम

प्रति युग उदाहरण उदाहरण हैं कि आप कितने नमूने चौकियों के बीच नेटवर्क से गुजरना चाहते हैं - इसका मतलब है अगर आपके पास 100 नमूने हैं (नमूने! = बैच, बैच नमूनों का एक बैच है) और आप 400 डालते हैं, यह हर 4 युगों को बचाएगा
ब्लूज़ुमर

1
मेरे पास @NagabhushanSN द्वारा पूछा गया वही प्रश्न था। मैंने नमूनों की संख्या की गणना करने के लिए प्रति युग नमूनों की गणना की जिसके बाद मैं मॉडल को बचाना चाहता हूं लेकिन यह काम नहीं करता है। बैच आकार = 64, परीक्षण मामले के लिए मैं प्रति युग 10 चरणों का उपयोग कर रहा हूं। अगर मैं हर 3 युगों में मॉडल को बचाना चाहता हूं, तो नमूनों की संख्या 64 * 10 * 3 = 1920 है। मैं इसका उपयोग sav_freq के लिए करता हूं, लेकिन आउटपुट से पता चलता है कि मॉडल को युग 1, युग 2, युग 9, युग 11, युग 14 और अभी भी चल रहा है। इसका कोई मतलब नहीं हो सकता। periodविकल्प ठीक काम करने लगता है लेकिन इस संदेश के साथ कि यह पदावनत हो जाएगा।
बीप्रोग्रामर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.