TensorFlow और Cloud AI Platform का इस्तेमाल करके अनुमान लगाना

TensorFlow एक ओपन सोर्स एमएल प्लैटफ़ॉर्म है, जो डीप लर्निंग जैसे बेहतर एमएल तरीकों के साथ काम करता है. इस पेज पर, Earth Engine में TensorFlow की खास सुविधाओं के बारे में बताया गया है. TensorFlow मॉडल, Earth Engine के बाहर डेवलप और ट्रेन किए जाते हैं. हालांकि, Earth Engine API, ट्रेनिंग और जांच के डेटा को TFRecord फ़ॉर्मैट में एक्सपोर्ट करने के तरीके उपलब्ध कराता है. साथ ही, TFRecord फ़ॉर्मैट में इमेज इंपोर्ट/एक्सपोर्ट करने की सुविधा भी देता है. Earth Engine के डेटा के साथ TensorFlow का इस्तेमाल करने के लिए, पाइपलाइन बनाने के तरीके के बारे में ज़्यादा जानने के लिए, TensorFlow के उदाहरण वाला पेज देखें. Earth Engine, TFRecord फ़ाइलों में डेटा कैसे लिखता है, इस बारे में ज़्यादा जानने के लिए, TFRecord पेज देखें.

ee.Model

ee.Model पैकेज, TensorFlow के साथ काम करने वाले मशीन लर्निंग मॉडल के साथ इंटरैक्शन मैनेज करता है.

AI Platform पर होस्ट किए गए मॉडल के साथ इंटरैक्ट करना

ee.Model.fromAiPlatformPredictor() की मदद से, नया ee.Model इंस्टेंस बनाया जा सकता है. यह एक ee.Model ऑब्जेक्ट है, जो Earth Engine डेटा को टेंसर में पैकेज करता है. साथ ही, उन्हें Google के एआई प्लैटफ़ॉर्म पर अनुमान के अनुरोधों के तौर पर भेजता है. इसके बाद, जवाबों को Earth Engine डेटा टाइप में अपने-आप फिर से इकट्ठा करता है. ध्यान दें कि अपने मॉडल और उसके इनपुट के साइज़ और जटिलता के आधार पर, आपको अपने एआई प्लैटफ़ॉर्म मॉडल के कम से कम नोड साइज़ में बदलाव करना पड़ सकता है, ताकि ज़्यादा अनुमान दिए जा सकें.

Earth Engine में एआई प्लैटफ़ॉर्म के मॉडल इस्तेमाल करने के लिए, TensorFlow के SavedModel फ़ॉर्मैट का इस्तेमाल करना ज़रूरी है. होस्ट किया गया मॉडल, Earth Engine के साथ इंटरैक्ट करने से पहले, उसके इनपुट/आउटपुट को TensorProto इंटरचेंज फ़ॉर्मैट के साथ काम करना चाहिए. खास तौर पर, ये इनपुट/आउटपुट, base64 में सीरियलाइज़ किए गए TensorProto होने चाहिए. इसे आसान बनाने के लिए, Earth Engine CLI में model prepare कमांड है. यह मौजूदा SavedModel को ज़रूरी ऑपरेशन में रैप करता है, ताकि इनपुट/आउटपुट फ़ॉर्मैट को बदला जा सके.

ee.Model.fromAiPlatformPredictor() के साथ मॉडल का इस्तेमाल करने के लिए, आपके पास मॉडल का इस्तेमाल करने की ज़रूरी अनुमतियां होनी चाहिए. खास तौर पर, आपके पास या मॉडल का इस्तेमाल करने वाले किसी भी व्यक्ति के पास, कम से कम ML Engine मॉडल के उपयोगकर्ता की भूमिका होनी चाहिए. Cloud Console के मॉडल पेज पर जाकर, मॉडल की अनुमतियों की जांच की जा सकती है और उन्हें सेट किया जा सकता है.

देश/इलाके

आपको अपने मॉडल के लिए क्षेत्रीय एंडपॉइंट का इस्तेमाल करना चाहिए. इसके लिए, मॉडल बनाते समय, वर्शन बनाते समय, और ee.Model.fromAiPlatformPredictor() में क्षेत्र की जानकारी दें. किसी भी क्षेत्र का इस्तेमाल किया जा सकता है (ग्लोबल का इस्तेमाल न करें), लेकिन us-central1 का इस्तेमाल करना बेहतर है. REGIONS पैरामीटर की वैल्यू न दें. अगर Cloud Console से कोई मॉडल बनाया जा रहा है, तो पक्का करें कि क्षेत्र के हिसाब से बने बॉक्स पर सही का निशान लगा हो.

लागत

इमेज के सुझाव

होस्ट किए गए मॉडल का इस्तेमाल करके, ee.Image के लिए अनुमान लगाने के लिए model.predictImage() का इस्तेमाल करें. predictImage() का रिटर्न टाइप एक ee.Image है. इसे मैप में जोड़ा जा सकता है, अन्य कैलकुलेशन में इस्तेमाल किया जा सकता है, एक्सपोर्ट किया जा सकता है वगैरह. Earth Engine, इनपुट बैंड को अपने-आप टाइल कर देगा और ज़रूरत के हिसाब से स्केल में बदलाव करने और ओवरटाइलिंग के लिए, आउटपुट प्रोजेक्शन में बदलाव कर देगा. टाइल करने के तरीके के बारे में ज़्यादा जानकारी के लिए, TFRecord दस्तावेज़ देखें. ध्यान दें कि Earth Engine, आपके मॉडल को हमेशा 3D टेंसर भेजेगा. भले ही, बैंड स्केलर हों (आखिरी डाइमेंशन 1 होगा).

कन्वोल्यूशनल मॉडल में, इनपुट प्रोजेक्शन (जिस डेटा पर मॉडल को ट्रेन किया गया था) एक जैसा होता है. इस मामले में, ee.Model.fromAiPlatformPredictor() को कॉल करते समय fixInputProj पैरामीटर को true पर सेट करें. अनुमान को विज़ुअलाइज़ करते समय, ऐसे मॉडल पर ज़ूम आउट करते समय सावधानी बरतें जिसमें एक तय इनपुट प्रोजेक्शन हो. इसकी वजह वही है जो यहां बताई गई है. खास तौर पर, बड़े स्पेस स्कोप पर ज़ूम करने से, बहुत ज़्यादा डेटा के लिए अनुरोध किए जा सकते हैं. साथ ही, AI Platform की परफ़ॉर्मेंस में कमी आ सकती है या अनुरोध अस्वीकार किए जा सकते हैं.