tfds और Google क्लाउड स्टोरेज

Google क्लाउड स्टोरेज (GCS) का उपयोग कई कारणों से tfds के साथ किया जा सकता है:

  • पूर्व-संसाधित डेटा संग्रहीत करना
  • उन डेटासेट तक पहुँचना जिनमें डेटा GCS पर संग्रहीत है

टीएफडीएस जीसीएस बकेट के माध्यम से पहुंच

कुछ डेटासेट बिना किसी प्रमाणीकरण के सीधे हमारे GCS बकेट gs://tfds-data/datasets/ में उपलब्ध हैं:

  • यदि tfds.load(..., try_gcs=False) (डिफ़ॉल्ट), डेटासेट को download_and_prepare के दौरान ~/tensorflow_datasets में स्थानीय रूप से कॉपी किया जाएगा।
  • यदि tfds.load(..., try_gcs=True) , तो डेटासेट सीधे GCS से स्ट्रीम किया जाएगा ( download_and_prepare छोड़ दिया जाएगा)।

आप tfds.is_dataset_on_gcs('mnist') से जांच सकते हैं कि कोई डेटासेट सार्वजनिक बकेट पर होस्ट किया गया है या नहीं।

प्रमाणीकरण

शुरू करने से पहले, आपको यह तय करना चाहिए कि आप कैसे प्रमाणित करना चाहते हैं। तीन विकल्प हैं:

  • कोई प्रमाणीकरण नहीं (उर्फ अनाम पहुंच)
  • अपने Google खाते का उपयोग करना
  • सेवा खाते का उपयोग करना (आपकी टीम में अन्य लोगों के साथ आसानी से साझा किया जा सकता है)

आप Google क्लाउड दस्तावेज़ में विस्तृत जानकारी पा सकते हैं

सरलीकृत निर्देश

यदि आप कोलाब से चलते हैं, तो आप अपने खाते से प्रमाणित कर सकते हैं, लेकिन चल रहा है:

from google.colab import auth
auth.authenticate_user()

यदि आप अपनी स्थानीय मशीन पर (या वीएम में) चलाते हैं, तो आप निम्न चलाकर अपने खाते से प्रमाणित कर सकते हैं:

gcloud auth application-default login

यदि आप सेवा खाते से लॉगिन करना चाहते हैं, तो JSON फ़ाइल कुंजी डाउनलोड करें और सेट करें

export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>

प्रीप्रोसेस्ड डेटा को स्टोर करने के लिए Google क्लाउड स्टोरेज का उपयोग करना

आम तौर पर जब आप TensorFlow डेटासेट का उपयोग करते हैं, तो डाउनलोड किया गया और तैयार किया गया डेटा एक स्थानीय निर्देशिका में कैश किया जाएगा (डिफ़ॉल्ट रूप से ~/tensorflow_datasets )।

कुछ वातावरणों में जहां स्थानीय डिस्क अल्पकालिक हो सकती है (एक अस्थायी क्लाउड सर्वर या कोलाब नोटबुक ) या आपको कई मशीनों द्वारा डेटा तक पहुंच की आवश्यकता होती है, Google क्लाउड स्टोरेज (जीसीएस) जैसे क्लाउड स्टोरेज सिस्टम में data_dir सेट करना उपयोगी होता है। बाल्टी।

कैसे?

एक जीसीएस बकेट बनाएं और सुनिश्चित करें कि आपको (या आपके सेवा खाते को) उस पर पढ़ने/लिखने की अनुमति है (ऊपर प्राधिकरण निर्देश देखें)

जब आप tfds उपयोग करते हैं, तो आप data_dir को "gs://YOUR_BUCKET_NAME" पर सेट कर सकते हैं

ds_train, ds_test = tfds.load(name="mnist", split=["train", "test"], data_dir="gs://YOUR_BUCKET_NAME")

चेतावनियाँ:

  • यह दृष्टिकोण उन डेटासेट के लिए काम करता है जो डेटा एक्सेस के लिए केवल tf.io.gfile का उपयोग करते हैं। यह अधिकांश डेटासेट के लिए सत्य है, लेकिन सभी के लिए नहीं।
  • याद रखें कि जीसीएस तक पहुंचने का मतलब एक दूरस्थ सर्वर तक पहुंचना और उससे डेटा स्ट्रीम करना है, इसलिए आपको नेटवर्क लागत लग सकती है।

जीसीएस पर संग्रहीत डेटासेट तक पहुंच

यदि डेटासेट मालिकों ने अनाम पहुंच की अनुमति दी है, तो आप बस आगे बढ़ सकते हैं और tfds.load कोड चला सकते हैं - और यह सामान्य इंटरनेट डाउनलोड की तरह काम करेगा।

यदि डेटासेट को प्रमाणीकरण की आवश्यकता है, तो कृपया ऊपर दिए गए निर्देशों का उपयोग करके यह निर्णय लें कि आप कौन सा विकल्प चाहते हैं (स्वयं खाता बनाम सेवा खाता) और डेटासेट स्वामी को खाता नाम (उर्फ ईमेल) बताएं। उनके द्वारा आपको जीसीएस निर्देशिका तक पहुंच सक्षम करने के बाद, आपको टीएफडीएस डाउनलोड कोड चलाने में सक्षम होना चाहिए।