मैं एक नए डेटासेट पर tensorflow में एक pretrained मॉडल कैसे finetune कर सकते हैं? कैफे में मैं बस अंतिम परत का नाम बदल सकता हूं और यादृच्छिक प्रारंभ के लिए कुछ पैरामीटर सेट कर सकता हूं। क्या tensorflow में कुछ समान संभव है?टेन्सफोर्लो: विभिन्न डेटा वर्गों के साथ नए डेटासेट पर Finetune pretrained मॉडल
कहें कि मेरे पास एक चेकपॉइंट फ़ाइल (deeplab_resnet.ckpt
) है और कुछ कोड जो कम्प्यूटेशनल ग्राफ सेट करता है जिसमें मैं अंतिम परत को संशोधित कर सकता हूं जैसे कि नए डेटासेट में कक्षाओं की संख्या समान है।
तो मैं इस तरह सत्र प्रारंभ करने का प्रयास:
sess = tf.Session(config=config)
init = tf.initialize_all_variables()
sess.run(init)
trainable = tf.trainable_variables()
saver = tf.train.Saver(var_list=trainable, max_to_keep=40)
saver.restore(sess, 'ckpt_path/deeplab_resnet.ckpt')
लेकिन जब saver.restore
फ़ंक्शन कॉल के बाद से यह एक से बचा लिया गया था के रूप में ठीक उसी ग्राफ संरचना उम्मीद यह मुझे एक त्रुटि देता है। 'ckpt_path/deeplab_resnet.ckpt'
फ़ाइल से अंतिम परत को छोड़कर मैं केवल सभी वजन कैसे लोड कर सकता हूं? मैं भी Classification
परत नाम लेकिन या तो कोई किस्मत ...
बदलते मैं tensorflow-deeplab-resnet model
मैं वास्तव में समझ में नहीं आता कि आप क्या चाहते हैं। क्या आप * परत * को संशोधित करना चाहते हैं, लेकिन इसका उपयोग करें लेकिन अलग-अलग (आकार बदलना आदि) या आप सभी मॉडल का उपयोग करना चाहते हैं लेकिन परत (एक ब्रांड नई परत का उपयोग करके) का उपयोग करना चाहते हैं। pltrdy – pltrdy
दोनों (जैसा कि फाइनेटिंग में किया जाता है)। मैं एक पुराना मॉडल लेता हूं जो अंतिम परत को प्रतिस्थापित करता है जो नए डेटासेट की कक्षाओं की नई संख्या को फिट करता है। फिर इस आखिरी परत को यादृच्छिक रूप से प्रारंभ करने की आवश्यकता है। मुझे लगता है कि @Alexey Romanovs उत्तर पहले ही समाधान का आधा है। गायब होने वाला एकमात्र हिस्सा एक परत के स्पष्ट यादृच्छिक प्रारंभिकरण है जब नेटवर्क को पूर्व कैफिमोडल से आयात किया गया था क्योंकि यह 'tensorflow-deeplab-resnet' – mcExchange
@mcExchange में मामला है, कृपया पूर्ण समाधान के साथ नीचे दिए गए उत्तर को पूरा करें और/या स्वीकृति दें नीचे समाधान। –