7 दिसंबर को महिला एमएल संगोष्ठी में भाग लें अभी पंजीकरण करें

TensorFlow संस्करण संगतता

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

यह दस्तावेज़ उन उपयोगकर्ताओं के लिए है जिन्हें TensorFlow के विभिन्न संस्करणों (कोड या डेटा के लिए) में पश्चगामी संगतता की आवश्यकता है, और उन डेवलपर्स के लिए जो संगतता बनाए रखते हुए TensorFlow को संशोधित करना चाहते हैं।

सिमेंटिक वर्जनिंग 2.0

TensorFlow सिमेंटिक संस्करण 2.0 (इस प्रकार semver अपने सार्वजनिक एपीआई के लिए)। TensorFlow से प्रत्येक रिलीज़ संस्करण रूप है MAJOR.MINOR.PATCH । उदाहरण के लिए, TensorFlow संस्करण 1.2.3 है MAJOR संस्करण 1, MINOR संस्करण 2, और PATCH संस्करण 3. प्रत्येक संख्या में किए गए परिवर्तन निम्न अर्थ है:

  • प्रमुख: संभावित पीछे की ओर असंगत बदल जाता है। पिछली प्रमुख रिलीज़ के साथ काम करने वाले कोड और डेटा जरूरी नहीं कि नई रिलीज़ के साथ काम करें। हालाँकि, कुछ मामलों में मौजूदा TensorFlow ग्राफ़ और चौकियों को नई रिलीज़ में स्थानांतरित किया जा सकता है; देखने के रेखांकन और चौकियों की संगतता डेटा अनुकूलता पर जानकारी के लिए।

  • माइनर: पिछड़ों संगत सुविधाओं, गति सुधार, आदि कोड और डेटा है कि पिछले एक नाबालिग जारी है और जो केवल गैर प्रयोगात्मक सार्वजनिक एपीआई पर निर्भर करता है अपरिवर्तित काम करना जारी रखेंगे के साथ काम किया। क्या है और सार्वजनिक API नहीं है पर जानकारी के लिए, क्या कवर किया जाता है

  • PATCH: पिछड़ों संगत बग फिक्स।

उदाहरण के लिए, रिलीज 1.0.0 रिहाई 0.12.1 से पीछे की ओर असंगत परिवर्तन की शुरुआत की। हालांकि, रिलीज 1.1.1 रिलीज 1.0.0 के साथ पीछे संगत किया गया था।

क्या कवर किया गया है

केवल TensorFlow के सार्वजनिक API छोटे और पैच संस्करणों में पीछे की ओर संगत हैं। सार्वजनिक एपीआई से मिलकर बनता है

  • सभी दस्तावेज अजगर कार्य करता है और कक्षाओं में tensorflow मॉड्यूल और उसके submodules, के अलावा

    • निजी प्रतीक: किसी भी समारोह, वर्ग, आदि, जिसका नाम के साथ शुरू _
    • प्रायोगिक और tf.contrib प्रतीकों, देखने के लिए नीचे दिए गए विवरण के लिए।

    ध्यान दें कि में कोड examples/ और tools/ निर्देशिका के माध्यम से पहुंच योग्य नहीं है tensorflow पायथन मॉड्यूल और इस प्रकार संगतता गारंटी में शामिल नहीं है।

    तो एक प्रतीक के माध्यम से उपलब्ध है tensorflow पायथन मॉड्यूल या उसके submodules, लेकिन दस्तावेज नहीं है, तो यह जनता के एपीआई का माना हिस्सा नहीं है।

  • संगतता एपीआई (पायथन में, tf.compat मॉड्यूल)। प्रमुख संस्करणों में, हम नए प्रमुख संस्करण में परिवर्तन के साथ उपयोगकर्ताओं की सहायता करने के लिए उपयोगिताओं और अतिरिक्त समापन बिंदुओं को जारी कर सकते हैं। ये एपीआई प्रतीक पदावनत हैं और समर्थित नहीं हैं (यानी, हम कोई विशेषता नहीं जोड़ेंगे, और हम कमजोरियों को ठीक करने के अलावा अन्य बगों को ठीक नहीं करेंगे), लेकिन वे हमारी संगतता गारंटी के अंतर्गत आते हैं।

  • सी एपीआई

  • निम्न प्रोटोकॉल बफ़र फ़ाइलें:

क्या कवर नहीं है

TensorFlow के कुछ हिस्से किसी भी बिंदु पर पिछड़े असंगत तरीकों से बदल सकते हैं। इसमे शामिल है:

  • प्रयोगात्मक API: विकास को सुविधाजनक बनाने के लिए, हम कुछ एपीआई प्रतीकों स्पष्ट रूप से अनुकूलता की गारंटी देता है से प्रयोगात्मक रूप में चिह्नित छूट। विशेष रूप से, निम्नलिखित किसी भी संगतता गारंटी द्वारा कवर नहीं किए जाते हैं:

    • में किसी भी प्रतीक tf.contrib मॉड्यूल या अपनी submodules;
    • किसी भी प्रतीक (मॉड्यूल, समारोह, तर्क, संपत्ति, वर्ग या निरंतर) जिसका नाम शामिल experimental या Experimental ; या
    • कोई भी प्रतीक जिसके पूर्ण रूप से योग्य नाम में एक मॉड्यूल या वर्ग शामिल है जो स्वयं प्रयोगात्मक है। यह क्षेत्रों और कहा जाता है किसी भी प्रोटोकॉल बफर के submessages शामिल experimental
  • अन्य भाषाओं जैसे: अजगर और सी के अलावा अन्य भाषाओं में TensorFlow एपीआई:

  • समग्र ऑप्स का विवरण: अजगर में कई सार्वजनिक समारोहों ग्राफ में कई आदिम ऑप्स का विस्तार, और इन विवरणों के रूप में डिस्क पर सहेज किसी भी रेखांकन का हिस्सा होगा GraphDef रों। ये विवरण मामूली रिलीज के लिए बदल सकते हैं। विशेष रूप से, प्रतिगमन परीक्षण जो ग्राफ़ के बीच सटीक मिलान की जांच करते हैं, मामूली रिलीज़ में टूटने की संभावना है, भले ही ग्राफ़ का व्यवहार अपरिवर्तित होना चाहिए और मौजूदा चेकपॉइंट अभी भी काम करेंगे।

  • चल बिन्दु संख्यात्मक विवरण: विशिष्ट चल बिन्दु ऑप्स द्वारा गणना मूल्यों को किसी भी समय बदल सकते हैं। उपयोगकर्ताओं को केवल अनुमानित सटीकता और संख्यात्मक स्थिरता पर भरोसा करना चाहिए, न कि गणना किए गए विशिष्ट बिट्स पर। मामूली और पैच रिलीज़ में संख्यात्मक फ़ार्मुलों में परिवर्तन के परिणामस्वरूप तुलनीय या बेहतर सटीकता होनी चाहिए, इस चेतावनी के साथ कि मशीन सीखने में विशिष्ट फ़ार्मुलों की बेहतर सटीकता के परिणामस्वरूप समग्र प्रणाली के लिए सटीकता में कमी आ सकती है।

  • रैंडम नंबर: विशिष्ट यादृच्छिक संख्या किसी भी समय बदल सकते हैं अभिकलन। उपयोगकर्ताओं को केवल लगभग सही वितरण और सांख्यिकीय ताकत पर भरोसा करना चाहिए, न कि गणना की गई विशिष्ट बिट्स पर। देखें यादृच्छिक संख्या पीढ़ी जानकारी के लिए गाइड।

  • संस्करण वितरित Tensorflow में तिरछा: एक ही क्लस्टर में TensorFlow के दो विभिन्न संस्करणों चल रहा है असमर्थित है। वायर प्रोटोकॉल की पश्चगामी संगतता के बारे में कोई गारंटी नहीं है।

  • कीड़े: हम पीछे की ओर असंगत व्यवहार बनाने के लिए अधिकार सुरक्षित रखते हैं (हालांकि नहीं एपीआई) है कि परिवर्तित करता है वर्तमान कार्यान्वयन स्पष्ट रूप से टूट गया है, है, अगर यह प्रलेखन के विपरीत है या यदि एक प्रसिद्ध और अच्छी तरह से परिभाषित अभिप्रेत व्यवहार ठीक से कारण लागू नहीं है एक बग को। उदाहरण के लिए, यदि कोई अनुकूलक एक प्रसिद्ध अनुकूलन एल्गोरिथ्म को लागू करने का दावा करता है, लेकिन बग के कारण उस एल्गोरिथ्म से मेल नहीं खाता है, तो हम अनुकूलक को ठीक कर देंगे। हमारा फिक्स अभिसरण के लिए गलत व्यवहार पर निर्भर कोड को तोड़ सकता है। हम जारी नोटों में ऐसे परिवर्तनों को नोट करेंगे।

  • अप्रयुक्त एपीआई: हम एपीआई जिसके लिए हम कोई प्रलेखित उपयोग करता है (GitHub खोज के माध्यम से TensorFlow उपयोग के लेखा परीक्षा प्रदर्शन करके) को खोजने के लिए पीछे की ओर असंगत परिवर्तन करने का अधिकार सुरक्षित रखते हैं। किसी भी तरह के बदलाव करने से पहले, हम पर परिवर्तन करने के लिए हमारा इरादा घोषणा करेंगे की घोषणा @ मेलिंग सूची , कैसे किसी भी टूट-फूट (यदि लागू हो) को संबोधित करने के लिए निर्देश प्रदान करने, और दो सप्ताह के लिए प्रतीक्षा हमारे समुदाय में उनकी प्रतिक्रिया साझा करने के लिए एक मौका देने के लिए .

  • त्रुटि व्यवहार: हम गैर त्रुटि व्यवहार के साथ त्रुटियों की जगह ले सकती। उदाहरण के लिए, हम एक त्रुटि उत्पन्न करने के बजाय परिणाम की गणना करने के लिए एक फ़ंक्शन बदल सकते हैं, भले ही वह त्रुटि प्रलेखित हो। हम त्रुटि संदेशों के पाठ को बदलने का अधिकार भी सुरक्षित रखते हैं। इसके अलावा, त्रुटि का प्रकार तब तक बदल सकता है जब तक कि किसी विशिष्ट त्रुटि स्थिति के लिए अपवाद प्रकार को दस्तावेज़ में निर्दिष्ट नहीं किया जाता है।

सहेजे गए मॉडल, ग्राफ़ और चौकियों की संगतता

SavedModel TensorFlow प्रोग्राम में उपयोग करने के लिए पसंदीदा क्रमांकन प्रारूप है। एक या अधिक रेखांकन के रूप में एन्कोड: SavedModels दो भागों शामिल GraphDefs और एक चेकप्वाइंट। ग्राफ़ चलाने के लिए ऑप्स के डेटा प्रवाह का वर्णन करते हैं, और चौकियों में ग्राफ़ में चर के सहेजे गए टेंसर मान होते हैं।

कई TensorFlow उपयोगकर्ता SavedModels बनाते हैं, और TensorFlow के बाद के रिलीज़ के साथ उन्हें लोड और निष्पादित करते हैं। के अनुपालन में semver , TensorFlow का एक संस्करण के साथ लिखा SavedModels भरी हुई है और एक ही प्रमुख रिलीज के साथ TensorFlow के बाद के संस्करण के साथ मूल्यांकन किया जा सकता।

हम समर्थित SavedModels के लिए अतिरिक्त गारंटी। हम एक SavedModel जो केवल गैर पदावनत, गैर प्रयोगात्मक, TensorFlow में गैर अनुकूलता एपीआई प्रमुख संस्करण का उपयोग कर बनाया गया था फोन N एक SavedModel संस्करण में समर्थित N । किसी भी SavedModel समर्थित TensorFlow में मुख्य संस्करण N भरी हुई और साथ TensorFlow मुख्य संस्करण क्रियान्वित किया जा सकता N+1 । हालांकि, ऐसे मॉडल को बनाने या संशोधित करने के लिए आवश्यक कार्यक्षमता अब और उपलब्ध नहीं हो सकती है, इसलिए यह गारंटी केवल असम्बद्ध सहेजे गए मॉडल पर लागू होती है।

हम यथासंभव लंबे समय तक पश्चगामी संगतता को संरक्षित करने का प्रयास करेंगे, ताकि क्रमबद्ध फ़ाइलें लंबे समय तक उपयोग करने योग्य हों।

ग्राफडेफ अनुकूलता

रेखांकन के माध्यम से क्रमानुसार लगे हुए हैं GraphDef प्रोटोकॉल बफ़र। रेखांकन करने के लिए पीछे की ओर असंगत परिवर्तनों को सरल बनाने के लिए, प्रत्येक GraphDef एक संस्करण संख्या TensorFlow संस्करण से अलग है। उदाहरण के लिए, GraphDef संस्करण 17 पदावनत inv के पक्ष में सेशन reciprocal । शब्दार्थ हैं:

  • TensorFlow के प्रत्येक संस्करण के अंतराल का समर्थन करता है GraphDef संस्करणों। यह अंतराल पैच रिलीज़ में स्थिर रहेगा, और केवल मामूली रिलीज़ में ही बढ़ेगा। एक का समर्थन बंद GraphDef संस्करण केवल TensorFlow का एक प्रमुख रिहाई के लिए हो जाएगा (और केवल संस्करण समर्थन SavedModels गारंटी के साथ गठबंधन)।

  • नव निर्मित रेखांकन नवीनतम आवंटित कर रहे हैं GraphDef संस्करण संख्या।

  • TensorFlow की दी गई संस्करण का समर्थन करता है, तो GraphDef एक ग्राफ के संस्करण है, यह लोड होगा और मूल्यांकन एक ही व्यवहार के साथ के रूप में TensorFlow संस्करण यह उत्पन्न करने के लिए (चल बिन्दु संख्यात्मक विवरण और यादृच्छिक संख्या के अलावा जैसा कि ऊपर उल्लिखित) का इस्तेमाल किया, प्रमुख की परवाह किए बिना TensorFlow का संस्करण। विशेष रूप से, एक ग्राफ़डिफ़ जो कि TensorFlow के एक संस्करण में एक चेकपॉइंट फ़ाइल के साथ संगत है (जैसे कि एक सहेजे गए मॉडल में मामला है) बाद के संस्करणों में उस चेकपॉइंट के साथ संगत रहेगा, जब तक कि ग्राफ़डिफ़ समर्थित है।

    ध्यान दें कि यह GraphDefs (और SavedModels) में धारावाहिक रेखांकन करने के लिए ही लागू होता है: कोड जो पढ़ता है एक चौकी TensorFlow का एक अलग संस्करण चला एक ही कोड द्वारा उत्पन्न चौकियों पढ़ने में सक्षम नहीं हो सकता है।

  • यदि GraphDef ऊपरी बाध्य एक (छोटे) विज्ञप्ति में एक्स तक बढ़ जाती है, वहां कम से कम छह महीने पहले लोअर बाउंड उदाहरण के लिए एक्स (हम काल्पनिक संस्करण संख्याओं यहाँ का उपयोग कर रहे) तक बढ़ जाती है हो जाएगा:

    • TensorFlow 1.2 का समर्थन कर सकते हैं GraphDef से 7 संस्करण 4।
    • TensorFlow 1.3 जोड़ सकता है GraphDef से 8 संस्करण 8 और समर्थन के संस्करण 4।
    • कम से कम छह महीने बाद, TensorFlow 2.0.0 संस्करण 4 से 7 के लिए समर्थन छोड़ सकता है, केवल संस्करण 8 को छोड़कर।

    ध्यान दें कि चूंकि TensorFlow के प्रमुख संस्करण आमतौर पर 6 महीने से अधिक समय तक प्रकाशित होते हैं, ऊपर वर्णित समर्थित SavedModels की गारंटी GraphDefs के लिए 6 महीने की गारंटी से कहीं अधिक मजबूत है।

अंत में, जब एक के लिए समर्थन GraphDef संस्करण गिरा दिया जाता है, तो हम अपने आप एक नए समर्थित करने के लिए रेखांकन परिवर्तित करने के लिए उपकरण प्रदान करने के लिए प्रयास करेंगे GraphDef संस्करण।

TensorFlow का विस्तार करते समय ग्राफ़ और चेकपॉइंट संगतता

इस अनुभाग में प्रासंगिक है जब करने के लिए असंगत बदलाव करने है GraphDef जैसे कि जब ऑप्स जोड़ने, ऑप्स को हटाने, या मौजूदा ऑप्स की कार्यक्षमता को बदलने के रूप में प्रारूप,। पिछला खंड अधिकांश उपयोगकर्ताओं के लिए पर्याप्त होना चाहिए।

पिछड़ा और आंशिक आगे संगतता

हमारी संस्करण योजना की तीन आवश्यकताएं हैं:

  • समर्थन लोड हो रहा है रेखांकन और चौकियों को पश्चगामी संगतता TensorFlow के पुराने संस्करणों के साथ बनाया।
  • जहां एक ग्राफ या चौकी के निर्माता उपभोक्ता से पहले TensorFlow के एक नए संस्करण के लिए नवीनीकृत है समर्थन परिदृश्यों के लिए आगे संगतता।
  • TensorFlow को असंगत तरीकों से विकसित करना सक्षम करें। उदाहरण के लिए, ऑप्स हटाना, विशेषताएँ जोड़ना और विशेषताएँ निकालना।

ध्यान दें कि जब GraphDef संस्करण तंत्र TensorFlow संस्करण से अलग है, करने के लिए पीछे की ओर असंगत परिवर्तन GraphDef प्रारूप अभी भी सिमेंटिक संशोधन द्वारा प्रतिबंधित हैं। यह साधन कार्यक्षमता केवल हटाया या के बीच बदला जा सकता है MAJOR (जैसे TensorFlow के संस्करण 1.7 करने के लिए 2.0 )। साथ ही, आगे संगतता पैच विज्ञप्ति (भीतर लागू की जाती है 1.x.1 को 1.x.2 उदाहरण के लिए)।

पिछड़े और आगे की संगतता प्राप्त करने के लिए और यह जानने के लिए कि प्रारूपों में परिवर्तनों को कब लागू करना है, ग्राफ़ और चेकपॉइंट्स में मेटाडेटा होता है जो बताता है कि उन्हें कब बनाया गया था। विस्तार नीचे दिए गए अनुभागों TensorFlow कार्यान्वयन और उभरती के लिए दिशा निर्देश GraphDef संस्करणों।

स्वतंत्र डेटा संस्करण योजनाएं

ग्राफ़ और चौकियों के लिए अलग-अलग डेटा संस्करण हैं। दो डेटा प्रारूप एक-दूसरे से अलग-अलग दरों पर और TensorFlow से अलग-अलग दरों पर विकसित होते हैं। दोनों वर्ज़निंग सिस्टम में परिभाषित कर रहे हैं core/public/version.h । जब भी कोई नया संस्करण जोड़ा जाता है, तो हेडर में एक नोट जोड़ा जाता है कि क्या बदला और तारीख का विवरण दिया गया है।

डेटा, निर्माता और उपभोक्ता

हम निम्न प्रकार के डेटा संस्करण जानकारी के बीच अंतर करते हैं:

  • उत्पादकों: बाइनरी कि डेटा का उत्पादन। प्रोड्यूसर्स एक संस्करण (राशि producer ) और एक न्यूनतम उपभोक्ता संस्करण है कि वे (के साथ संगत कर रहे हैं min_consumer )।
  • उपभोक्ताओं: बाइनरी कि डेटा खपत करते हैं। उपभोक्ताओं को एक संस्करण (राशि consumer ) और एक न्यूनतम निर्माता संस्करण है कि वे (के साथ संगत कर रहे हैं min_producer )।

संस्करणीकृत डेटा का प्रत्येक भाग एक है VersionDef versions क्षेत्र है जो रिकॉर्ड producer है कि डेटा, बनाया min_consumer है कि यह साथ संगत है, और की एक सूची bad_consumers कि अनुमति नहीं है संस्करणों।

डिफ़ॉल्ट रूप से, जब एक निर्माता कुछ डेटा बनाता है, डेटा उत्पादक विरासत में producer और min_consumer संस्करणों। bad_consumers विशिष्ट उपभोक्ता संस्करणों कीड़े को रोकने के लिए जाना जाता है और बचा जाना चाहिए अगर सेट किया जा सकता। एक उपभोक्ता डेटा का एक टुकड़ा स्वीकार कर सकता है यदि निम्नलिखित सभी सत्य हैं:

  • consumer > = डेटा के min_consumer
  • डेटा के producer > = उपभोक्ता की min_producer
  • consumer डेटा के दशक में नहीं bad_consumers

दोनों उत्पादकों और उपभोक्ताओं को एक ही TensorFlow कोड आधार से आते हैं के बाद से, core/public/version.h जो या तो के रूप में व्यवहार किया जाता है एक मुख्य डेटा संस्करण शामिल producer या consumer संदर्भ के आधार पर और दोनों min_consumer और min_producer (उत्पादकों और उपभोक्ताओं की जरूरत, क्रमशः) . विशेष रूप से,

  • के लिए GraphDef संस्करणों, हमारे पास TF_GRAPH_DEF_VERSION , TF_GRAPH_DEF_VERSION_MIN_CONSUMER , और TF_GRAPH_DEF_VERSION_MIN_PRODUCER
  • चौकी संस्करणों के लिए, हमारे पास TF_CHECKPOINT_VERSION , TF_CHECKPOINT_VERSION_MIN_CONSUMER , और TF_CHECKPOINT_VERSION_MIN_PRODUCER

किसी मौजूदा ऑप में डिफ़ॉल्ट के साथ एक नई विशेषता जोड़ें

नीचे दिए गए मार्गदर्शन का पालन करने से आपको केवल तभी अनुकूलता मिलती है जब ऑप्स का सेट नहीं बदला है:

  1. आगे संगतता वांछित है, तो सेट strip_default_attrs को True , जबकि या तो का उपयोग कर मॉडल निर्यात tf.saved_model.SavedModelBuilder.add_meta_graph_and_variables और tf.saved_model.SavedModelBuilder.add_meta_graph के तरीकों SavedModelBuilder वर्ग, या tf.estimator.Estimator.export_saved_model
  2. यह मॉडलों के उत्पादन/निर्यात के समय डिफ़ॉल्ट मूल्यवान विशेषताओं को हटा देता है। यह सुनिश्चित करें कि निर्यात करता है tf.MetaGraphDef नया सेशन-विशेषता शामिल नहीं है जब डिफ़ॉल्ट मान प्रयोग किया जाता है।
  3. इस नियंत्रण के होने से पुराने उपभोक्ता (उदाहरण के लिए, बायनेरिज़ की सेवा करना जो प्रशिक्षण बायनेरिज़ से पिछड़ जाते हैं) मॉडल लोड करना जारी रख सकते हैं और मॉडल की सेवा में रुकावटों को रोक सकते हैं।

ग्राफडिफ संस्करण विकसित करना

इस अनुभाग में बताया इस वर्ज़निंग तंत्र का उपयोग करने के लिए परिवर्तन के विभिन्न प्रकार बनाने के लिए बताते हैं GraphDef प्रारूप।

एक विकल्प जोड़ें

एक ही समय में दोनों उपभोक्ताओं और उत्पादकों के लिए नए सेशन जोड़ें, और किसी भी परिवर्तन नहीं करते GraphDef संस्करणों। इस प्रकार का परिवर्तन स्वचालित रूप से पिछड़ा संगत है, और आगे की संगतता योजना को प्रभावित नहीं करता है क्योंकि मौजूदा निर्माता स्क्रिप्ट अचानक नई कार्यक्षमता का उपयोग नहीं करेंगे।

एक सेशन जोड़ें और इसका उपयोग करने के लिए मौजूदा पायथन रैपर को स्विच करें

  1. नए उपभोक्ता कार्यक्षमता को लागू करने और बढ़ाने के GraphDef संस्करण।
  2. यदि यह संभव है कि रैपर केवल उन मामलों में नई कार्यक्षमता का उपयोग करें जो पहले काम नहीं करते थे, तो रैपर को अब अपडेट किया जा सकता है।
  3. नई कार्यक्षमता का उपयोग करने के लिए पायथन रैपर बदलें। नहीं वेतन वृद्धि है min_consumer , मॉडल है कि इस सेशन का उपयोग नहीं करते नहीं तोड़ चाहिए, क्योंकि।

किसी ऑप की कार्यक्षमता को हटाना या प्रतिबंधित करना

  1. प्रतिबंधित ऑप या कार्यक्षमता का उपयोग न करने के लिए सभी निर्माता स्क्रिप्ट (स्वयं TensorFlow नहीं) को ठीक करें।
  2. को बढ़ा देते GraphDef संस्करण और नए उपभोक्ता कार्यक्षमता को लागू है कि प्रतिबंध हटा सेशन या GraphDefs के लिए कार्यक्षमता नए संस्करण में और इसके बाद के संस्करण। यदि संभव हो, TensorFlow का उत्पादन बंद कर GraphDefs पर प्रतिबंध लगा दिया कार्यक्षमता के साथ। ऐसा करने के लिए, जोड़ने REGISTER_OP(...).Deprecated(deprecated_at_version, message)
  3. पिछड़े संगतता उद्देश्यों के लिए एक प्रमुख रिलीज की प्रतीक्षा करें।
  4. बढ़ाएँ min_producer (2) से GraphDef संस्करण के लिए और पूरी तरह से कार्यक्षमता को हटा दें।

एक सेशन की कार्यक्षमता बदलें

  1. एक नया समान सेशन नामित जोड़े SomethingV2 या इसी तरह की है और यह जोड़ने तथा मौजूदा अजगर रैपर इसका इस्तेमाल करने स्विच करने की प्रक्रिया के माध्यम से जाना। आगे संगतता उपयोग की जाँच में सुझाव यह सुनिश्चित करने के compat.py जब अजगर रैपर बदलते।
  2. पुराने ऑप को हटा दें (पिछड़े संगतता के कारण केवल एक प्रमुख संस्करण परिवर्तन के साथ ही हो सकता है)।
  3. बढ़ाएँ min_consumer , पुराने सेशन के साथ उपभोक्ताओं से इनकार के लिए एक उपनाम के रूप पुराने सेशन वापस जोड़ने के लिए SomethingV2 , और मौजूदा अजगर रैपर इसका इस्तेमाल करने के लिए स्विच करने के लिए प्रक्रिया पूरी करें।
  4. प्रक्रिया पूरी करें दूर करने के लिए SomethingV2

एकल असुरक्षित उपभोक्ता संस्करण पर प्रतिबंध लगाएं

  1. टक्कर GraphDef संस्करण और करने के लिए बुरा संस्करण जोड़ने bad_consumers सभी नए GraphDefs के लिए। यदि संभव हो, के लिए जोड़ bad_consumers केवल GraphDefs जो एक निश्चित सेशन या इसी तरह के होते हैं के लिए।
  2. यदि मौजूदा उपभोक्ताओं के पास खराब संस्करण है, तो उन्हें जल्द से जल्द बाहर कर दें।