मैंने रात में एक tensorflow.keras मॉडल को प्रशिक्षित किया है और प्रशिक्षण प्रक्रिया के बारे में आश्चर्यचकित था (कृपया संलग्न चित्र देखें)। क्या कोई मुझे बता सकता है कि प्रशिक्षण के दौरान ऐसा क्या प्रभाव पैदा कर सकता है? मैंने एमएसई (दाएं) और प्रदर्शित एक अन्य नुकसान (बाइनरी क्रॉसेंट्रॉपी) के साथ प्रशिक्षण लिया है। मैंने 'सामान्य' नमूनों के साथ एक ऑटोएन्कोडर को प्रशिक्षित किया है। सत्यापन नमूने 'विसंगति' नमूने हैं।
अगर आपको और जानकारी चाहिए तो कृपया मुझे बताएं।
संपादित करें: मुझे इसका कारण मिल सकता है, लेकिन मुझे यकीन नहीं है: मेरे पास इनपुट-डेटा के रूप में विशेषताएं हैं, जिनका मान सख्ती से [0,1] में नहीं है, वास्तव में मेरे पास [0,1] में लगभग सभी मान हैं। 0,1] लेकिन कुछ मान 1 से थोड़ा बड़ा है। जैसा कि मैं एमएसई के साथ प्रशिक्षण कर रहा हूं, मैंने सोचा कि यह कोई समस्या नहीं होनी चाहिए, लेकिन संदर्भ के रूप में मैं बाइनरी क्रॉसेंट्रॉपी लॉस का भी उपयोग करता हूं ([0,1 में मूल्यों की आवश्यकता है) ]). यह प्रशिक्षण के लिए कुछ जलन पैदा कर सकता है। मैं उपयोग कर रहा हूँ:
loss = tensorflow.keras.losses.MeanSquaredError(name='MeanSquaredError')
autoencoder.compile(optimizer=tensorflow.keras.optimizers.Adam(lr=learning_rate), loss=loss, metrics=[tensorflow.keras.metrics.BinaryCrossentropy()])
और लाइवलॉसप्लॉट:
callbacks=[PlotLossesKeras(outputs=[MatplotlibPlot(figpath=save_string_plot)]),TensorBoard(log_dir="autoencoder\\" + string_name_model)],
फिलहाल मैं फीचर वैल्यू वाले मॉडल को सख्ती से [0,1] में फिर से प्रशिक्षित कर रहा हूं।
-> पुनर्प्रशिक्षण युग 175 तक पहुंच गया और फिर दुर्घटनाग्रस्त हो गया, इसलिए मुझे लगता है कि यह समाधान नहीं था (सुविधा को सख्ती से [0,1] में अनुकूलित करें)। आइए दूसरे संभावित समाधान (ग्रेडिएंट क्लिपिंग) का प्रयास करें। बने रहें। :)
संपादित करें: एक अन्य समाधान ग्रेडिएंट क्लिपिंग हो सकता है, देखें:
--> साथ ही यह ट्रेनिंग भी कारगर नहीं हुई। 175 युगों में भी हानि का विस्फोट होता है।
दो संभावित समाधानों के साथ नई तस्वीरें, जो कारगर नहीं हुईं (लेकिन दोनों लगभग एक ही स्थिति में फट गईं):
संपादित करें: मैंने नुकसान विस्फोट से बचने के लिए बैच सामान्यीकरण की भी कोशिश की, लेकिन यह भी कोशिश नहीं की।
1 उत्तर
मुझे एक समाधान मिला:
-मैंने पूरी तरह से अजगर को फिर से स्थापित किया और सीखने की दर को एक छोटे मूल्य में बदल दिया (मुझे लगता है कि सीखने की दर मुख्य कारक थी) और तब से, कोई नुकसान नहीं हुआ (अब कई बार प्रशिक्षित)।
संबंधित सवाल
नए सवाल
tensorflow
TensorFlow एक ओपन-सोर्स लाइब्रेरी और एपीआई है जिसे Google द्वारा लिखित और रखरखाव के लिए बनाया गया है। मशीन सीखने की समस्याओं को हल करने के लिए एपीआई का उपयोग करने के बारे में सवालों के लिए इस टैग का उपयोग भाषा-विशिष्ट टैग ([अजगर], [सी ++], [जावास्क्रिप्ट], [आर], आदि के साथ करें। TensorFlow API के साथ उपयोग की जा सकने वाली प्रोग्रामिंग भाषाएं बदलती हैं, इसलिए आपको प्रोग्रामिंग भाषा को निर्दिष्ट करना होगा। कृपया आवेदन क्षेत्र जैसे [ऑब्जेक्ट-डिटेक्शन] को भी निर्दिष्ट करें।