अब तक जो मैंने इकट्ठा किया है, उसमें एक TensorFlow ग्राफ को एक फ़ाइल में डंप करने और फिर दूसरे प्रोग्राम में लोड करने के कई अलग-अलग तरीके हैं, लेकिन मैं कैसे वे काम करते हैं इस पर स्पष्ट उदाहरण / जानकारी नहीं मिल पाई है। जो मुझे पहले से पता है वह यह है:
- मॉडल के चर को चेकपॉइंट फ़ाइल (.ckpt) में सहेजें
tf.train.Saver()
और बाद में उन्हें पुनर्स्थापित करें ( स्रोत ) - एक मॉडल को एक .pb फ़ाइल में सहेजें और इसे वापस प्रयोग करने में लोड करें
tf.train.write_graph()
औरtf.import_graph_def()
( स्रोत ) - एक .pb फ़ाइल से एक मॉडल में लोड करें, इसे पुनः प्राप्त करें, और इसे Bazel ( स्रोत ) का उपयोग करके एक नई .pb फ़ाइल में डंप करें।
- ग्राफ और भार को एक साथ बचाने के लिए ग्राफ को फ्रीज करें ( स्रोत )
as_graph_def()
मॉडल को बचाने के लिए उपयोग करें , और वजन / चर के लिए, उन्हें स्थिरांक ( स्रोत ) में मैप करें
हालाँकि, मैं इन विभिन्न तरीकों के बारे में कई प्रश्न स्पष्ट नहीं कर पाया:
- चेकपॉइंट फ़ाइलों के बारे में, क्या वे केवल एक मॉडल के प्रशिक्षित वजन को बचाते हैं? क्या चेकपॉइंट फ़ाइलों को एक नए प्रोग्राम में लोड किया जा सकता है, और मॉडल को चलाने के लिए उपयोग किया जा सकता है, या क्या वे एक निश्चित समय / चरण में मॉडल में भार को बचाने के तरीके के रूप में काम करते हैं?
- के बारे में
tf.train.write_graph()
, क्या वजन / चर भी बचाए गए हैं? - Bazel के बारे में, क्या यह केवल .pb से पुनर्प्राप्त करने के लिए / pb फ़ाइलों से लोड कर सकता है? वहाँ एक साधारण Bazel आदेश सिर्फ एक .pb में एक ग्राफ डंप करने के लिए है?
- ठंड के संबंध में, क्या जमे हुए ग्राफ का उपयोग करने में लोड किया जा सकता है
tf.import_graph_def()
? - TensorFlow के लिए Android डेमो एक .pb फ़ाइल से Google के इंसेप्शन मॉडल में लोड होता है। अगर मैं अपनी .pb फाइल को स्थानापन्न करना चाहता हूं, तो मैं कैसे करूंगा? क्या मुझे किसी मूल कोड / विधियों को बदलने की आवश्यकता होगी?
- सामान्य तौर पर, इन सभी तरीकों में क्या अंतर है? या अधिक मोटे तौर पर,
as_graph_def()
/.tpt/.pb में क्या अंतर है ?
संक्षेप में, मैं जो खोज रहा हूं वह एक ग्राफ को (जैसे, विभिन्न परिचालनों और इस तरह) और उसके वज़न / चर को एक फ़ाइल में सहेजने की एक विधि है, जिसका उपयोग किसी अन्य प्रोग्राम में ग्राफ़ और वज़न को लोड करने के लिए किया जा सकता है। , उपयोग के लिए (जरूरी नहीं कि निरंतरता / वापसी हो)।
इस विषय के बारे में प्रलेखन बहुत सीधा नहीं है, इसलिए किसी भी उत्तर / जानकारी की बहुत सराहना की जाएगी।