2016-12-28 12 views
8

को पुनर्स्थापित करने का प्रयास करते समय मैं Tensorflow r0.12 का उपयोग कर रहा हूं।टेन्सफोर्लो "बाइट्स के रूप में फ़ीड से तत्व प्राप्त करने में असमर्थ" के साथ विफल रहता है। चेकपॉइंट

मैं 2 अलग-अलग प्रशिक्षण नौकरियों को चलाने के लिए स्थानीय रूप से Google-क्लाउड-एमएल का उपयोग करता हूं। पहली नौकरी में, मुझे अपने चर के लिए अच्छे प्रारंभिक मान मिलते हैं। मैं उन्हें एक वी 2-चेकपॉइंट में स्टोर करता हूं।

जब मैं उन्हें दूसरी नौकरी में प्रयोग करने के लिए मेरे चर बहाल करने की कोशिश:

import tensorflow as tf 

sess = tf.Session() 
new_saver = tf.train.import_meta_graph('../variables_pred/model.ckpt-10151.meta', clear_devices=True) 
new_saver.restore(sess, tf.train.latest_checkpoint('../variables_pred/')) 
all_vars = tf.trainable_variables() 
for v in all_vars: 
    print(v.name) 

मैं निम्नलिखित त्रुटि संदेश मिला:

tensorflow.python.framework.errors_impl.InternalError: Unable to get element from the feed as bytes. 

चौकी पहले में इन पंक्तियों के साथ बनाई गई है नौकरी:

saver = tf.train.Saver() 
saver.export_meta_graph(filename=os.path.join(output_dir, 'export.meta')) 
saver.save(sess, os.path.join(output_dir, 'export'), write_meta_graph=False) 

this answer के अनुसार, यह coul मेटाडेटा फ़ाइल की अनुपस्थिति से आया हूं लेकिन मैं मेटाडेटा फ़ाइल लोड कर रहा हूं।

पीएस: मैं तर्क का उपयोग करता हूं क्योंकि Google-क्लाउड-एमएल पर लॉन्च द्वारा उत्पन्न डिवाइस विनिर्देश काफी जटिल हैं और मुझे आवश्यक रूप से एक ही प्रेषण की आवश्यकता नहीं है।

+0

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

+0

आप जिस मॉडल को लोड करने का प्रयास कर रहे हैं वह कहां रहता है? क्या यह जीसीएस पर रहता है? यह मुझे स्पष्ट नहीं है कि यह एक प्रशिक्षण नौकरी या कई प्रशिक्षण नौकरियां है। आपके प्रश्न की मेरी व्याख्या यह थी कि आप प्रारंभिक चेकपॉइंट बनाने के लिए एक क्लाउड एमएल प्रशिक्षण नौकरी चलाते हैं। इसलिए संभवतः आपने नौकरी खत्म होने के बाद इसे उपलब्ध कराने के लिए इसे जीसीएस में सहेजा। आपके दूसरे काम में आप उस चेकपॉइंट को पढ़ने की कोशिश कर रहे हैं। आप सापेक्ष पथ का उपयोग कर रहे हैं। क्या आपने मॉडल को जीसीएस से स्थानीय फाइल सिस्टम में कॉपी किया था? –

+0

@EricPlaton मैं tensorflow r0.12 का उपयोग कर रहा हूँ। साथ ही, मैं अपने चेकपॉइंट को डिफ़ॉल्ट तरीके से सहेजता हूं जो तर्क को _text = गलत कहते हैं। –

उत्तर

9

सेट करने का प्रयास करें त्रुटि संदेश अनजानता द्वारा "चेकपॉइंट" नाम की फ़ाइल की अनुपस्थिति के कारण था।

उपयुक्त फ़ाइल में इस फ़ाइल के पुनरुत्पादन के बाद, ऐसा लगता है कि चेकपॉइंट की लोडिंग काम कर रही है।

इस महत्वपूर्ण बिंदु को छोड़ने के लिए खेद है।

1

मुझे लगता है कि समस्या यह हो सकती है कि जब आप मॉडल को सहेजते हैं तो आप write_meta_graph = गलत सेट करते हैं। नतीजतन मुझे नहीं लगता कि आप वास्तव में ग्राफ को सहेज रहे हैं ताकि जब आप पुनर्स्थापित करने का प्रयास करें तो पुनर्स्थापित करने के लिए कोई ग्राफ नहीं है। Write_meta_graph = True

+0

बाहर निकलता है कि मुझे अंततः मेरी समस्या का समाधान मिला। मैंने सोचा कि केवल चेकपॉइंट फाइलों को स्थानांतरित करना पर्याप्त था लेकिन ऐसा लगता है कि यह नहीं था। फिर भी धन्यवाद ! –

-1

त्रुटि संदेश भी "चेकपॉइंट" नामक फ़ाइल में गलतियों के कारण अनजानता से था।

उदाहरण के लिए, मॉडल वाले फ़ोल्डर को स्थानांतरित कर दिया गया है, लेकिन "checkpoint" में "model_checkpoint_path:" का मान अभी भी पुराना पथ है।

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

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