अवलोकन
tensorflow_hub
लाइब्रेरी वर्तमान में मॉडल डाउनलोड करने के लिए दो मोड का समर्थन करती है। डिफ़ॉल्ट रूप से, एक मॉडल को एक संपीड़ित संग्रह के रूप में डाउनलोड किया जाता है और डिस्क पर कैश किया जाता है। दूसरे, मॉडल को सीधे रिमोट स्टोरेज से TensorFlow में पढ़ा जा सकता है। किसी भी तरह से, वास्तविक पायथन कोड में tensorflow_hub
फ़ंक्शन के लिए कॉल कैनोनिकल tfhub.dev मॉडल के URL का उपयोग करना जारी रख सकते हैं और जारी रखना चाहिए, जो सिस्टम में पोर्टेबल हैं और दस्तावेज़ीकरण के लिए नेविगेट करने योग्य। दुर्लभ मामले में उपयोगकर्ता कोड को वास्तविक फ़ाइल सिस्टम स्थान की आवश्यकता होती है (डाउनलोड करने और डीकंप्रेस करने के बाद, या फाइल सिस्टम पथ में मॉडल हैंडल को हल करने के बाद), इसे hub.resolve(handle)
फ़ंक्शन द्वारा प्राप्त किया जा सकता है।
संपीड़ित डाउनलोड की कैशिंग
tensorflow_hub
लाइब्रेरी डिफ़ॉल्ट रूप से फ़ाइल सिस्टम पर मॉडल को कैश करती है जब उन्हें tfhub.dev (या अन्य होस्टिंग साइटों ) से डाउनलोड किया जाता है और डिकम्प्रेस किया जाता है। अधिकांश वातावरणों के लिए इस मोड की अनुशंसा की जाती है, सिवाय इसके कि डिस्क स्थान कम है लेकिन नेटवर्क बैंडविड्थ और विलंबता शानदार है।
डाउनलोड स्थान एक स्थानीय अस्थायी निर्देशिका के लिए डिफॉल्ट करता है लेकिन पर्यावरण चर TFHUB_CACHE_DIR
(अनुशंसित) सेट करके या कमांड-लाइन फ़्लैग --tfhub_cache_dir
पास करके अनुकूलित किया जा सकता है। डिफ़ॉल्ट कैश स्थान /tmp/tfhub_modules
(या जो कुछ भी os.path.join(tempfile.gettempdir(), "tfhub_modules")
मूल्यांकन किया जाता है) ज्यादातर मामलों में काम करना चाहिए।
जो उपयोगकर्ता सिस्टम रीबूट के दौरान लगातार कैशिंग पसंद करते हैं, वे इसके बजाय TFHUB_CACHE_DIR
को अपनी होम डायरेक्टरी में एक स्थान पर सेट कर सकते हैं। उदाहरण के लिए, लिनक्स सिस्टम पर बैश शेल का एक उपयोगकर्ता ~/.bashrc
में निम्नलिखित की तरह एक लाइन जोड़ सकता है
export TFHUB_CACHE_DIR=$HOME/.cache/tfhub_modules
...शेल को रीस्टार्ट करें, और फिर इस स्थान का उपयोग किया जाएगा। स्थायी स्थान का उपयोग करते समय ध्यान रखें कि कोई स्वचालित सफाई नहीं है।
रिमोट स्टोरेज से पढ़ना
उपयोगकर्ता tensorflow_hub
लाइब्रेरी को मॉडल को स्थानीय रूप से डाउनलोड करने के बजाय सीधे रिमोट स्टोरेज (GCS) से मॉडल पढ़ने का निर्देश दे सकते हैं
os.environ["TFHUB_MODEL_LOAD_FORMAT"] = "UNCOMPRESSED"
या कमांड-लाइन फ्लैग --tfhub_model_load_format
को UNCOMPRESSED
पर सेट करके। इस तरह, किसी कैशिंग निर्देशिका की आवश्यकता नहीं है, जो विशेष रूप से उन वातावरणों में मददगार है जो कम डिस्क स्थान लेकिन एक तेज़ इंटरनेट कनेक्शन प्रदान करते हैं।
Colab नोटबुक्स में TPU पर चल रहा है
Colab.research.google.com पर, कंप्रेस किए गए मॉडल को डाउनलोड करने से TPU रनटाइम के साथ विरोध होगा क्योंकि कंप्यूटेशन वर्कलोड को किसी दूसरी मशीन को सौंप दिया जाता है जिसके पास डिफ़ॉल्ट रूप से कैश स्थान तक पहुंच नहीं होती है। इस स्थिति के लिए दो वर्कअराउंड हैं:
1) एक GCS बकेट का उपयोग करें जिसे TPU कार्यकर्ता एक्सेस कर सके
सबसे आसान उपाय यह है कि tensorflow_hub
लाइब्रेरी को TF हब के GCS बकेट से मॉडल पढ़ने का निर्देश दिया जाए, जैसा कि ऊपर बताया गया है। अपने स्वयं के GCS बकेट वाले उपयोगकर्ता इसके बजाय कोड जैसे कैश स्थान के रूप में अपनी बकेट में एक निर्देशिका निर्दिष्ट कर सकते हैं
import os
os.environ["TFHUB_CACHE_DIR"] = "gs://my-bucket/tfhub-modules-cache"
... tensorflow_hub
लाइब्रेरी को कॉल करने से पहले।
2) Colab होस्ट के माध्यम से सभी रीड को रीडायरेक्ट करें
Colab होस्ट के माध्यम से सभी रीड्स (यहां तक कि बड़े चर के) को रीडायरेक्ट करने के लिए एक और समाधान है:
load_options =
tf.saved_model.LoadOptions(experimental_io_device='/job:localhost')
reloaded_model = hub.load("https://tfhub.dev/...", options=load_options)
नोट: मान्य हैंडल के बारे में अधिक जानकारी यहाँ देखें।
,अवलोकन
tensorflow_hub
लाइब्रेरी वर्तमान में मॉडल डाउनलोड करने के लिए दो मोड का समर्थन करती है। डिफ़ॉल्ट रूप से, एक मॉडल को एक संपीड़ित संग्रह के रूप में डाउनलोड किया जाता है और डिस्क पर कैश किया जाता है। दूसरे, मॉडल को सीधे रिमोट स्टोरेज से TensorFlow में पढ़ा जा सकता है। किसी भी तरह से, वास्तविक पायथन कोड में tensorflow_hub
फ़ंक्शन के लिए कॉल कैनोनिकल tfhub.dev मॉडल के URL का उपयोग करना जारी रख सकते हैं और जारी रखना चाहिए, जो सिस्टम में पोर्टेबल हैं और दस्तावेज़ीकरण के लिए नेविगेट करने योग्य। दुर्लभ मामले में उपयोगकर्ता कोड को वास्तविक फ़ाइल सिस्टम स्थान की आवश्यकता होती है (डाउनलोड करने और डीकंप्रेस करने के बाद, या फाइल सिस्टम पथ में मॉडल हैंडल को हल करने के बाद), इसे hub.resolve(handle)
फ़ंक्शन द्वारा प्राप्त किया जा सकता है।
संपीड़ित डाउनलोड की कैशिंग
tensorflow_hub
लाइब्रेरी डिफ़ॉल्ट रूप से फ़ाइल सिस्टम पर मॉडल को कैश करती है जब उन्हें tfhub.dev (या अन्य होस्टिंग साइटों ) से डाउनलोड किया जाता है और डिकम्प्रेस किया जाता है। अधिकांश वातावरणों के लिए इस मोड की अनुशंसा की जाती है, सिवाय इसके कि डिस्क स्थान कम है लेकिन नेटवर्क बैंडविड्थ और विलंबता शानदार है।
डाउनलोड स्थान एक स्थानीय अस्थायी निर्देशिका के लिए डिफॉल्ट करता है लेकिन पर्यावरण चर TFHUB_CACHE_DIR
(अनुशंसित) सेट करके या कमांड-लाइन फ़्लैग --tfhub_cache_dir
पास करके अनुकूलित किया जा सकता है। डिफ़ॉल्ट कैश स्थान /tmp/tfhub_modules
(या जो कुछ भी os.path.join(tempfile.gettempdir(), "tfhub_modules")
मूल्यांकन किया जाता है) ज्यादातर मामलों में काम करना चाहिए।
जो उपयोगकर्ता सिस्टम रीबूट के दौरान लगातार कैशिंग पसंद करते हैं, वे इसके बजाय TFHUB_CACHE_DIR
को अपनी होम डायरेक्टरी में एक स्थान पर सेट कर सकते हैं। उदाहरण के लिए, लिनक्स सिस्टम पर बैश शेल का एक उपयोगकर्ता ~/.bashrc
में निम्नलिखित की तरह एक लाइन जोड़ सकता है
export TFHUB_CACHE_DIR=$HOME/.cache/tfhub_modules
...शेल को रीस्टार्ट करें, और फिर इस स्थान का उपयोग किया जाएगा। स्थायी स्थान का उपयोग करते समय ध्यान रखें कि कोई स्वचालित सफाई नहीं है।
रिमोट स्टोरेज से पढ़ना
उपयोगकर्ता tensorflow_hub
लाइब्रेरी को मॉडल को स्थानीय रूप से डाउनलोड करने के बजाय सीधे रिमोट स्टोरेज (GCS) से मॉडल पढ़ने का निर्देश दे सकते हैं
os.environ["TFHUB_MODEL_LOAD_FORMAT"] = "UNCOMPRESSED"
या कमांड-लाइन फ्लैग --tfhub_model_load_format
को UNCOMPRESSED
पर सेट करके। इस तरह, किसी कैशिंग निर्देशिका की आवश्यकता नहीं है, जो विशेष रूप से उन वातावरणों में मददगार है जो कम डिस्क स्थान लेकिन एक तेज़ इंटरनेट कनेक्शन प्रदान करते हैं।
Colab नोटबुक्स में TPU पर चल रहा है
Colab.research.google.com पर, कंप्रेस किए गए मॉडल को डाउनलोड करने से TPU रनटाइम के साथ विरोध होगा क्योंकि कंप्यूटेशन वर्कलोड को किसी दूसरी मशीन को सौंप दिया जाता है जिसके पास डिफ़ॉल्ट रूप से कैश स्थान तक पहुंच नहीं होती है। इस स्थिति के लिए दो वर्कअराउंड हैं:
1) एक GCS बकेट का उपयोग करें जिसे TPU कार्यकर्ता एक्सेस कर सके
सबसे आसान उपाय यह है कि tensorflow_hub
लाइब्रेरी को TF हब के GCS बकेट से मॉडल पढ़ने का निर्देश दिया जाए, जैसा कि ऊपर बताया गया है। अपने स्वयं के GCS बकेट वाले उपयोगकर्ता इसके बजाय कोड जैसे कैश स्थान के रूप में अपनी बकेट में एक निर्देशिका निर्दिष्ट कर सकते हैं
import os
os.environ["TFHUB_CACHE_DIR"] = "gs://my-bucket/tfhub-modules-cache"
... tensorflow_hub
लाइब्रेरी को कॉल करने से पहले।
2) Colab होस्ट के माध्यम से सभी रीड को रीडायरेक्ट करें
Colab होस्ट के माध्यम से सभी रीड्स (यहां तक कि बड़े चर के) को रीडायरेक्ट करने के लिए एक और समाधान है:
load_options =
tf.saved_model.LoadOptions(experimental_io_device='/job:localhost')
reloaded_model = hub.load("https://tfhub.dev/...", options=load_options)
नोट: मान्य हैंडल के बारे में अधिक जानकारी यहाँ देखें।