इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

TensorFlow हब के साथ TF2 के लिए TF1 से पलायन

यह पृष्ठ कैसे TensorFlow 2. TensorFlow 1 से अपने TensorFlow कोड पलायन जबकि TensorFlow हब का उपयोग कर यह TensorFlow के सामान्य पूरक रखने के लिए बताते हैं माइग्रेशन मार्गदर्शिका

TF2 के लिए, TF हब विरासत से दूर बंद है hub.Module एक के निर्माण के लिए एपीआई tf.compat.v1.Graph तरह tf.contrib.v1.layers है। इसके बजाय, वहाँ अब एक है hub.KerasLayer एक के निर्माण के लिए अन्य Keras परतों के साथ उपयोग के लिए tf.keras.Model (TF2 के नए में आम तौर पर उत्सुक निष्पादन वातावरण ) और उसके अंतर्निहित hub.load() निम्न स्तर TensorFlow कोड के लिए विधि।

hub.Module एपीआई में उपलब्ध रहता है tensorflow_hub TF1 में और TF2 की TF1 संगतता मोड में उपयोग के लिए पुस्तकालय। यह केवल में मॉडल लोड कर सकते हैं TF1 हब प्रारूप

के नए एपीआई hub.load() और hub.KerasLayer TensorFlow 1.15 के लिए काम करता है इस नए एपीआई (उत्सुक और ग्राफ मोड में) और TensorFlow 2 में नई लोड कर सकते हैं TF2 SavedModel साथ प्रतिबंध में बाहर रखी परिसंपत्तियों, और, मॉडल संगतता गाइड , TF1 हब प्रारूप में विरासत मॉडल।

सामान्य तौर पर, यह जहां भी संभव नई एपीआई का उपयोग करने की सिफारिश की है।

नई एपीआई का सारांश

hub.load() TensorFlow हब (या संगत सेवा) से एक SavedModel लोड करने के लिए नए निम्न स्तर के कार्य है। यह TF2 के लपेटता tf.saved_model.load() ; TensorFlow के SavedModel गाइड बताता है कि आप परिणाम के साथ कर सकते हैं।

 m = hub.load(handle)
outputs = m(inputs)
 

hub.KerasLayer वर्ग कॉल hub.load() और adapts अन्य Keras परतों के साथ Keras में इस्तेमाल के लिए परिणाम। (यह भी अन्य तरीकों से किया लोड SavedModels के लिए एक सुविधाजनक आवरण हो सकता है।)

 model = tf.keras.Sequential([
    hub.KerasLayer(handle),
    ...])
 

कई ट्यूटोरियल कार्रवाई इन API दिखा। विशेष रूप से देखें

अनुमानक प्रशिक्षण में नए API का उपयोग करना

यदि आप एक TF2 SavedModel एक अनुमानक में पैरामीटर सर्वर के साथ प्रशिक्षण के लिए (या अन्यथा एक TF1 सत्र में रिमोट उपकरणों पर रखा चर के साथ) का उपयोग करते हैं, तो आप सेट करने की जरूरत है experimental.share_cluster_devices_in_session tf.Session के ConfigProto में, वरना आप एक त्रुटि प्राप्त होगी की तरह "असाइन डिवाइस ': पी एस / प्रतिकृति: / काम 0 / कार्य: 0 / डिवाइस: सीपीयू: 0'। किसी भी डिवाइस से मेल नहीं खाता"

आवश्यक विकल्प की तरह सेट किया जा सकता

 session_config = tf.compat.v1.ConfigProto()
session_config.experimental.share_cluster_devices_in_session = True
run_config = tf.estimator.RunConfig(..., session_config=session_config)
estimator = tf.estimator.Estimator(..., config=run_config)
 

TF2.2 के साथ शुरू, यह विकल्प नहीं रह गया है प्रयोगात्मक है, और .experimental टुकड़ा गिरा दिया जा सकता है।

TF1 हब प्रारूप में विरासत लोड हो रहा है मॉडल

यह भी हो सकता है कि एक नए TF2 SavedModel अभी तक अपने यूज-केस के लिए उपलब्ध नहीं है और आप TF1 हब प्रारूप में एक विरासत मॉडल लोड की जरूरत है। में प्रारंभ हो tensorflow_hub रिलीज 0.7, आप के साथ TF1 हब प्रारूप एक साथ में विरासत मॉडल का उपयोग कर सकते hub.KerasLayer के रूप में नीचे दिखाया गया है:

 m = hub.KerasLayer(handle)
tensor_out = m(tensor_in)
 

इसके अतिरिक्त KerasLayer निर्दिष्ट करने की क्षमता को उजागर करता है tags , signature , output_key और signature_outputs_as_dict TF1 हब प्रारूप और विरासत SavedModels में विरासत मॉडल की अधिक विशिष्ट उपयोगों के लिए।

TF1 हब प्रारूप संगतता के बारे में अधिक जानकारी के लिए देखें मॉडल संगतता गाइड

निचले स्तर API का उपयोग करके

विरासत TF1 हब प्रारूप मॉडल के माध्यम से लोड किया जा सकता tf.saved_model.load । के बजाय

 # DEPRECATED: TensorFlow 1
m = hub.Module(handle, tags={"foo", "bar"})
tensors_out_dict = m(dict(x1=..., x2=...), signature="sig", as_dict=True)
 

यह उपयोग करने के लिए सिफारिश की है:

 # TensorFlow 2
m = hub.load(path, tags={"foo", "bar"})
tensors_out_dict = m.signatures["sig"](x1=..., x2=...)
 

इन उदाहरणों में m.signatures TensorFlow की एक dict है ठोस कार्यों हस्ताक्षर नामों से keyed। कॉलिंग इस तरह के एक समारोह, अपने सभी outputs गणना भी अप्रयुक्त है। (यह TF1 के ग्राफ मोड के आलसी मूल्यांकन से अलग है।)