আর্থ ইঞ্জিন Vertex AI- তে হোস্ট করা মডেলের সংযোগকারী হিসেবে ee.Model প্রদান করে। এই সংযোগকারী একটি Vertex AI এন্ডপয়েন্টে স্থাপন করা একটি প্রশিক্ষিত মডেলকে অনলাইন ভবিষ্যদ্বাণী অনুরোধ হিসাবে চিত্র বা টেবিল ডেটা পাঠায়। মডেল আউটপুট তারপর আর্থ ইঞ্জিন ইমেজ বা টেবিল হিসাবে ফেরত দেওয়া হয়.
ee.Model.predictImage
হোস্ট করা মডেল ব্যবহার করে ee.Image এ ভবিষ্যদ্বাণী করতে model.predictImage() ব্যবহার করুন। ee.Image ব্যান্ডের টাইলস (চিত্র প্যাচ) তৈরি করতে ব্যবহৃত হয় যা হোস্ট করা মডেলে পাঠানো হয়। রিটার্ন টাইপ predictImage() হল একটি ee.Image যা মানচিত্রে যোগ করা যায়, রপ্তানি করা যায় বা অন্যান্য গণনায় ব্যবহার করা যায়।
ইনপুট বিকল্প
একটি ee.Image ব্যবহার করে অনুমান সম্পাদন করার সময় ee.Model সংযোগকারীতে বেশ কয়েকটি পরামিতি ব্যবহৃত হয়। এই নিয়ন্ত্রণগুলি ইনপুট ব্যান্ড এবং বৈশিষ্ট্য, ইনপুট ইমেজ প্যাচ টাইলিং, আউটপুট ইমেজ প্যাচ সাইজ এবং আউটপুট ইমেজ ব্যান্ডের জন্য।
ব্যান্ড এবং বৈশিষ্ট্য
ইনপুট ব্যান্ড এবং বৈশিষ্ট্যগুলি নির্দিষ্ট করতে নিম্নলিখিত পরামিতিগুলি ব্যবহার করুন:
inputProperties
inputProperties হল প্রতিটি ভবিষ্যদ্বাণী উদাহরণে ফরওয়ার্ড করার জন্য সম্পত্তির নামের একটি তালিকা। সংখ্যাসূচক, স্ট্রিং, এবং বুলিয়ান বৈশিষ্ট্য সমর্থিত।
inputTypeOverride
inputTypeOverride হল প্রপার্টি এবং বা ব্যান্ড নামের একটি ডিকশনারী যার নির্দিষ্ট প্রকার এবং মাত্রার তথ্য প্রদান করা হয়। এটি প্রয়োজনীয় হতে পারে কারণ অনেক আর্থ ইঞ্জিন অ্যালগরিদম গতিশীল ধরনের আউটপুট তৈরি করে যা রানটাইম পর্যন্ত অনুমান করা যায় না।
উদাহরণস্বরূপ, যদি আপনি একটি সংগ্রহের উপর ee.Terrain.slope ফাংশন ম্যাপ করে "ঢাল" কম্পিউট করেন তবে আপনাকে আমাদের অনুমান ইনপুটগুলিতে "ঢাল" এর আউটপুট প্রকারটি নির্দিষ্ট করতে হবে:
inputTypeOverride = {
"slope": {
"type": "PixelType",
"precision": "float",
"dimensions": 0,
"min": -100.0,
"max": 100.0
}
}
টিপ: যদি আপনি ত্রুটি বার্তার সম্মুখীন হন যে একটি ব্যান্ড বা সম্পত্তি "একটি টেনসরে রূপান্তরিত করা যাবে না," একটি সম্ভাব্য সমাধান হল একটি প্রদত্ত প্রকারে ইনপুটকে জোর করতে একটি টাইপ ওভাররাইড ব্যবহার করা৷
inputShapes
inputShapes হল ব্যান্ডের নাম এবং অ্যারে-পিক্সেল আকৃতির একটি অভিধান। 1 এর বেশি দৈর্ঘ্য সহ আপনার মডেল অ্যারে-মূল্যবান পিক্সেল পাঠাতে তারপর inputShapes আর্গুমেন্ট সেট করুন। সেট করা যুক্তিটি inputTypeOverride এর অনুরূপ কিন্তু ইমেজ পূর্বাভাসের জন্য ইনপুট ব্যান্ড আকারের জন্য নির্দিষ্ট। উদাহরণস্বরূপ, তিনটি ব্যান্ড এনকোড করতে, (1) "ndvi_series" একটি 1D টাইম সিরিজ হিসাবে 12 টি মান সহ, (2) "temp" একটি স্কেলার হিসাবে এবং (3) "প্যাচ" একটি 2D পিক্সেল অ্যারে হিসাবে, নিম্নলিখিতগুলি ব্যবহার করুন:
inputShapes = {
"ndvi_series": [12], # 12 ndvi samples
"temp": [], # scalar
"patch": [2, 2], # 2px * 2px patch
}
outputBands
outputBands হল একটি বস্তুর আউটপুট ব্যান্ড নামের একটি অভিধান যার মধ্যে ee.PixelType এবং ব্যান্ডের মাত্রা রয়েছে। এখানে মাত্রা টেনসর শেপ অ্যারের দৈর্ঘ্যের সমান হওয়া উচিত। অন্য কথায়, আকৃতি () সহ স্কেলার ডেটার মাত্রা 0 থাকা উচিত, আকৃতি (N) সহ 1D ডেটার মাত্রা 1 হওয়া উচিত, আকৃতি সহ 2D ডেটা (N, M) এর মাত্রা 2 হওয়া উচিত। উদাহরণস্বরূপ, আকৃতি সহ অ্যারে-মূল্যযুক্ত পিক্সেল সহ "B1" নামের একটি আউটপুট ব্যান্ড নিম্নলিখিতগুলির সাথে নির্দিষ্ট করা হয়েছে:
outputBands = {
'B1': {'type': ee.PixelType.float(), 'dimensions': 1}
}
টালি মাপ
নিম্নলিখিত পরামিতিগুলি ব্যবহার করে চিত্রটি কীভাবে টাইল করা হয় তা আপনি নিয়ন্ত্রণ করেন:
-
inputTileSize -
inputOverlapSize -
outputTileSize
ইনপুট টাইল আকার
ইনপুট টাইল আকার সেট করতে inputTileSize এবং inputOverlapSize ব্যবহার করুন। পিক্সেলে এক জোড়া টালি প্রস্থ এবং উচ্চতা প্রদান করে এই পরামিতিগুলি সেট করুন (উদাহরণস্বরূপ [32, 32])। inputTileSize এবং outputTileSize উচ্চতা এবং প্রস্থ যোগ করে মোট প্যাচের আকার নির্ধারণ করা হয়।
উদাহরণস্বরূপ, একটি সম্পূর্ণ রূপান্তরমূলক মডেল আকৃতি সহ ইনপুট আশা করতে পারে (256 x 256 x চ্যানেল)। যদি আমরা অনুমান ফলাফলের মধ্যে প্রান্তের প্রভাব সম্পর্কে চিন্তিত থাকি, তাহলে আমরা প্রতিটি অনুমান ফলাফলের উপরে এবং নীচে থেকে বাম এবং ডান দিক থেকে inputOverlapSize[0] পিক্সেল এবং inputOverlapSize[1] বাতিল করতে পারি। এর ফলে ভবিষ্যদ্বাণী এলাকা সম্পূর্ণরূপে কভার করার জন্য আরও ভবিষ্যদ্বাণী কল হবে।
উদাহরণস্বরূপ, যদি আমাদের মডেল আশা করে (256 x 256 x 3) এবং আমরা 32 বর্ডার পিক্সেল বাতিল করতে চাই আমরা নিম্নলিখিতগুলি নির্দিষ্ট করব:
ee.Model({
"endpoint": endpoint,
"inputTileSize": [192, 192],
"inputOverlapSize": [64, 64],
# rest omitted.
}
দ্রষ্টব্য: inputOverlapSize মোট x এবং y ওভারল্যাপ। আপনি যদি সম্পূর্ণ চিত্রের চারপাশে N পিক্সেলের একটি বাফার রাখতে চান তাহলে ওভারল্যাপ হবে [2N, 2N]
আউটপুট টাইল আকার
আউটপুট টাইল সাইজ সেট করতে outputTileSize আর্গুমেন্ট সেট করুন। যদি outputTileSize সেট করা না থাকে তাহলে ডিফল্ট টাইল সাইজ inputTileSize এর অনুরূপ।
কিছু মডেলের জন্য আউটপুট আকার ইনপুট আকার থেকে ভিন্ন হতে পারে। উদাহরণস্বরূপ, একটি শ্রেণীবিন্যাস মডেল (256, 256, চ্যানেল) আকৃতির ইনপুট গ্রহণ করতে পারে, তবে আকৃতি (1, 1, 1) সহ টেনসরগুলি ফেরত দিতে পারে। এই ক্ষেত্রে outputTileSize সেট করা প্রয়োজন [1, 1] । এটি এমন মডেলগুলির সাথে মোটামুটি সাধারণ যা কিছু টাইল বৈশিষ্ট্যের সম্ভাব্যতার আউটপুট (একটি হ্রাস রেজোলিউশনে) প্রদান করে।
অভিক্ষেপ
প্রায় সব কনভোল্যুশনাল মডেল একটি স্থির অভিক্ষেপের ইনপুট আশা করবে। এর কারণ হল অধিকাংশ কনভোলিউশনাল মডেল একটি নির্দিষ্ট স্কেলে প্রশিক্ষিত। এই ক্ষেত্রে, ee.Model.fromVertexAi() এ আপনার কলে fixInputProj প্যারামিটারটিকে সত্য হিসাবে সেট করুন এবং proj প্যারামিটারে ডেটার অভিক্ষেপ নির্দিষ্ট করুন৷
ইনপুট চিত্রের অভিক্ষেপ এবং মডেলের স্থির অভিক্ষেপ আউটপুট মানকে প্রভাবিত করবে। EE রিপ্রজেকশন গাইড দেখুন।