मैं Keras कॉलबैक निष्पादन आदेश को समझने की कोशिश कर रहा हूँ। मान लीजिए कि हम model.fit () में कई कॉलबैक पास करते हैं, प्रत्येक में एक on_epoch_end विधि है। तो जिस क्षण हम एक युग के अंत तक पहुँचते हैं, किस क्रम में कॉलबैक फ़ंक्शन निष्पादित किए जाएंगे? क्या मुख्य प्रक्रिया कई बाल-प्रक्रियाओं को जन्म देती है और प्रत्येक कॉलबैक में एक असाइन करती है?

यह अच्छा होगा यदि दस्तावेज अधिक विस्तृत हों।

2
Hongtao Yang 26 मार्च 2020, 02:18

1 उत्तर

सबसे बढ़िया उत्तर

उन्हें उस क्रम में बुलाया जाना चाहिए जिस क्रम में आपने उन्हें जोड़ा है। अगर आप CallbackList के क्रियान्वयन को देखें तो क्लास जो आपके कॉलबैक का प्रबंधन करती है, आप देखेंगे कि यह उपस्थिति के क्रम से पुनरावृत्त हो रहा है। उदाहरण के लिए यहां on_epoch_end में।

साथ ही, में वर्ग का उपयोग इस प्रकार किया जाता है ट्रेनिंग लूप और ऐसा नहीं लगता कि एक अलग प्रक्रिया स्पॉन है।

2
bachr 26 मार्च 2020, 03:23
धन्यवाद! इससे आदेश स्पष्ट होता है। एक साइड नोट के रूप में, क्या सभी कॉलबैक फ़ंक्शंस को संभालने के लिए एक अलग पायथन प्रक्रिया उत्पन्न की जाएगी? मैं पूछता हूं क्योंकि जब मैं ctrl+c द्वारा मुख्य प्रशिक्षण प्रक्रिया को समाप्त करता हूं, तो मैं देख सकता हूं कि मेरा कॉलबैक अभी भी चल रहा है, और मुझे इसे रोकने के लिए kill PID का उपयोग करना होगा।
 – 
Hongtao Yang
26 मार्च 2020, 03:11
मैंने कुछ विवरण जोड़े हैं कि ट्रेनिनिन लूप में कैलाच का उपयोग कैसे किया जाता है। मेरा अनुमान है कि आप समर्थित के रूप में Tensorflow का उपयोग कर रहे हैं जो कॉलबैक को अलग तरीके से निष्पादित कर सकता है। केरस कार्यान्वयन अलग प्रक्रिया को जन्म नहीं देता है। यह भी हो सकता है। GPU संसाधन से संबंधित ठीक से जारी नहीं किया गया।
 – 
bachr
26 मार्च 2020, 03:26
दरअसल, मैं tf.keras का उपयोग कर रहा हूं और मैं उसके लिए tf2.1 का उपयोग कर रहा हूं। शायद चीजें अलग हैं, मैं देख लूंगा। धन्यवाद
 – 
Hongtao Yang
26 मार्च 2020, 05:04
जैसे ही आप प्रशिक्षण बंद करते हैं, सभी प्रक्रियाएं (कॉलबैक और मुख्य प्रशिक्षण लूप) बंद हो जाती हैं। फिट फ़ंक्शन को कॉल करने पर कॉलबैक निष्पादित किए जाते हैं। मैं tf2.1 और tf.keras का उपयोग कर रहा हूँ। यही मेरी तरफ हो रहा है।
 – 
samra irshad
6 जून 2020, 08:44