অ্যামাজন সেজমেকার স্টুডিও এবং অ্যামাজন সেজমেকার অটোপাইলট ব্যবহার করে স্যাটেলাইট ইমেজ বৈশিষ্ট্য ব্যবহার করে ম্যানগ্রোভ বন সনাক্ত করুন – পার্ট 2

উত্স নোড: 1497327

ম্যানগ্রোভ বনগুলি একটি স্বাস্থ্যকর বাস্তুতন্ত্রের একটি আমদানি অংশ, এবং মানব ক্রিয়াকলাপগুলি বিশ্বের উপকূলরেখা থেকে ধীরে ধীরে অন্তর্ধানের একটি প্রধান কারণ। একটি স্যাটেলাইট ইমেজ থেকে ম্যানগ্রোভ অঞ্চল সনাক্ত করতে একটি মেশিন লার্নিং (এমএল) মডেল ব্যবহার করা গবেষকদের সময়ের সাথে বনের আকার নিরীক্ষণ করার একটি কার্যকর উপায় দেয়। ভিতরে পার্ট 1 এই সিরিজের, আমরা দেখিয়েছি কিভাবে একটি স্বয়ংক্রিয় পদ্ধতিতে স্যাটেলাইট ডেটা সংগ্রহ করা যায় এবং এটি বিশ্লেষণ করা যায় অ্যামাজন সেজমেকার স্টুডিও ইন্টারেক্টিভ ভিজ্যুয়ালাইজেশন সহ। এই পোস্টে, আমরা কীভাবে ব্যবহার করব তা দেখাই অ্যামাজন সেজমেকার অটোপাইলট একটি কাস্টম ম্যানগ্রোভ ক্লাসিফায়ার নির্মাণের প্রক্রিয়া স্বয়ংক্রিয় করতে।

অটোপাইলটের সাথে একটি মডেলকে প্রশিক্ষণ দিন

অটোপাইলট বেশ কয়েকটি মডেল তৈরি করার এবং সেরাটি নির্বাচন করার একটি ভারসাম্যপূর্ণ উপায় প্রদান করে। ন্যূনতম প্রচেষ্টার সাথে বিভিন্ন ডেটা প্রিপ্রসেসিং কৌশল এবং ML মডেলগুলির একাধিক সমন্বয় তৈরি করার সময়, অটোপাইলট ইচ্ছা করলে ডেটা বিজ্ঞানীকে এই উপাদান পদক্ষেপগুলির উপর সম্পূর্ণ নিয়ন্ত্রণ প্রদান করে।

আপনি AWS SDK-এর একটি ব্যবহার করে অটোপাইলট ব্যবহার করতে পারেন (বিস্তারিত Autopilot জন্য API রেফারেন্স গাইড) বা স্টুডিওর মাধ্যমে। এই বিভাগে বর্ণিত পদক্ষেপগুলি অনুসরণ করে আমরা আমাদের স্টুডিও সমাধানে অটোপাইলট ব্যবহার করি:

  1. স্টুডিও লঞ্চার পৃষ্ঠায়, এর জন্য প্লাস চিহ্নটি বেছে নিন নতুন অটোপাইলট পরীক্ষা.
  2. জন্য আপনার ডেটা সংযুক্ত করুন, নির্বাচন করুন S3 বালতি খুঁজুন, এবং বালতির নাম লিখুন যেখানে আপনি প্রশিক্ষণ এবং পরীক্ষার ডেটাসেট রেখেছিলেন।
  3. জন্য ডেটাসেট ফাইলের নাম, আপনার তৈরি করা প্রশিক্ষণ ডেটা ফাইলের নাম লিখুন প্রশিক্ষণের তথ্য প্রস্তুত করুন বিভাগে পার্ট 1.
  4. জন্য আউটপুট ডেটা অবস্থান (S3 বালতি), আপনি ধাপ 2 এ ব্যবহার করা একই বালতি নাম লিখুন।
  5. জন্য ডেটাসেট ডিরেক্টরির নাম, বালতির নীচে একটি ফোল্ডারের নাম লিখুন যেখানে আপনি অটোপাইলটকে আর্টিফ্যাক্টগুলি সংরক্ষণ করতে চান৷
  6. জন্য আপনার S3 ইনপুট একটি ম্যানিফেস্ট ফাইল?নির্বাচন বন্ধ.
  7. জন্য লক্ষ্যনির্বাচন লেবেল.
  8. জন্য স্বয়ংক্রিয় স্থাপননির্বাচন বন্ধ.
  9. অধীনে উন্নত সেটিংসজন্য মেশিন লার্নিং সমস্যার ধরননির্বাচন বাইনারি শ্রেণীবিভাগ.
  10. জন্য উদ্দেশ্য মেট্রিকনির্বাচন AUC.
  11. জন্য আপনার পরীক্ষা চালানোর উপায় চয়ন করুননির্বাচন না, প্রার্থীর সংজ্ঞা সহ একটি নোটবুক তৈরি করতে একটি পাইলট চালান.
  12. বেছে নিন পরীক্ষা তৈরি করুন.

    একটি পরীক্ষা তৈরি সম্পর্কে আরও তথ্যের জন্য, পড়ুন একটি Amazon SageMaker Autopilot পরীক্ষা তৈরি করুন.এই ধাপটি চালাতে প্রায় 15 মিনিট সময় লাগতে পারে৷
  13. সম্পূর্ণ হলে, নির্বাচন করুন প্রার্থী প্রজন্মের নোটবুক খুলুন, যা শুধুমাত্র-পঠন মোডে একটি নতুন নোটবুক খোলে।
  14. বেছে নিন নোটবুক আমদানি করুন নোটবুক সম্পাদনাযোগ্য করতে।
  15. ছবির জন্য, নির্বাচন করুন ডেটা বিজ্ঞান.
  16. জন্য শাঁসনির্বাচন পাইথন 3.
  17. বেছে নিন নির্বাচন করা.

এই স্বয়ংক্রিয়-উত্পন্ন নোটবুকের বিস্তারিত ব্যাখ্যা রয়েছে এবং অনুসরণ করার জন্য প্রকৃত মডেল বিল্ডিং টাস্কের উপর সম্পূর্ণ নিয়ন্ত্রণ প্রদান করে। একটি কাস্টমাইজড সংস্করণ নোটবই, যেখানে 2013 থেকে ল্যান্ডস্যাট স্যাটেলাইট ব্যান্ডগুলি ব্যবহার করে একটি শ্রেণিবদ্ধকারীকে প্রশিক্ষণ দেওয়া হয়, এর অধীনে কোড সংগ্রহস্থলে উপলব্ধ notebooks/mangrove-2013.ipynb.

মডেল বিল্ডিং ফ্রেমওয়ার্ক দুটি অংশ নিয়ে গঠিত: ডেটা প্রসেসিং ধাপের অংশ হিসেবে বৈশিষ্ট্য রূপান্তর এবং মডেল নির্বাচন ধাপের অংশ হিসেবে হাইপারপ্যারামিটার অপ্টিমাইজেশান (HPO)। এই কাজের জন্য সমস্ত প্রয়োজনীয় শিল্পকর্ম অটোপাইলট পরীক্ষার সময় তৈরি করা হয়েছিল এবং সংরক্ষণ করা হয়েছিল আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon S3)। প্রথম নোটবুক সেল সেই নিদর্শনগুলিকে Amazon S3 থেকে স্থানীয়ভাবে ডাউনলোড করে আমাজন সেজমেকার পরিদর্শন এবং কোনো প্রয়োজনীয় পরিবর্তনের জন্য ফাইল সিস্টেম। দুটি ফোল্ডার আছে: generated_module এবং sagemaker_automl, যেখানে নোটবুক চালানোর জন্য প্রয়োজনীয় সমস্ত পাইথন মডিউল এবং স্ক্রিপ্ট সংরক্ষণ করা হয়। অভিযোজন, স্কেলিং, এবং PCA এর মত বিভিন্ন বৈশিষ্ট্য রূপান্তর পদক্ষেপ হিসাবে সংরক্ষিত হয় generated_modules/candidate_data_processors/dpp*.py.

অটোপাইলট XGBoost, লিনিয়ার লার্নার এবং মাল্টি-লেয়ার পারসেপ্টরন (MLP) অ্যালগরিদমের উপর ভিত্তি করে তিনটি ভিন্ন মডেল তৈরি করে। একটি প্রার্থী পাইপলাইন বৈশিষ্ট্য রূপান্তর বিকল্পগুলির মধ্যে একটি নিয়ে গঠিত, যা নামে পরিচিত data_transformer, এবং একটি অ্যালগরিদম। একটি পাইপলাইন একটি পাইথন অভিধান এবং নিম্নরূপ সংজ্ঞায়িত করা যেতে পারে:

candidate1 = { "data_transformer": { "name": "dpp5", "training_resource_config": { "instance_type": "ml.m5.4xlarge", "instance_count": 1, "volume_size_in_gb": 50 }, "transform_resource_config": { "instance_type": "ml.m5.4xlarge", "instance_count": 1, }, "transforms_label": True, "transformed_data_format": "application/x-recordio-protobuf", "sparse_encoding": True }, "algorithm": { "name": "xgboost", "training_resource_config": { "instance_type": "ml.m5.4xlarge", "instance_count": 1, }, }
}

এই উদাহরণে, পাইপলাইন ইন স্ক্রিপ্ট অনুযায়ী প্রশিক্ষণ ডেটা রূপান্তরিত করে generated_modules/candidate_data_processors/dpp5.py এবং একটি XGBoost মডেল তৈরি করে। এখানেই অটোপাইলট ডেটা বিজ্ঞানীকে সম্পূর্ণ নিয়ন্ত্রণ প্রদান করে, যারা স্বয়ংক্রিয়ভাবে উৎপন্ন বৈশিষ্ট্য রূপান্তর এবং মডেল নির্বাচনের ধাপগুলি বেছে নিতে পারে বা তাদের নিজস্ব সমন্বয় তৈরি করতে পারে।

আপনি এখন নিম্নরূপ পরীক্ষা চালানোর জন্য অটোপাইলটের জন্য একটি পুলে পাইপলাইন যোগ করতে পারেন:

from sagemaker_automl import AutoMLInteractiveRunner, AutoMLLocalCandidate automl_interactive_runner = AutoMLInteractiveRunner(AUTOML_LOCAL_RUN_CONFIG)
automl_interactive_runner.select_candidate(candidate1)

এটি একটি গুরুত্বপূর্ণ পদক্ষেপ যেখানে আপনি মোট রানটাইম কমাতে বিষয়গত দক্ষতার উপর ভিত্তি করে অটোপাইলট দ্বারা প্রস্তাবিত প্রার্থীদের শুধুমাত্র একটি উপসেট রাখার সিদ্ধান্ত নিতে পারেন। আপাতত, সমস্ত অটোপাইলট পরামর্শ রাখুন, যা আপনি নিম্নরূপ তালিকাভুক্ত করতে পারেন:

automl_interactive_runner.display_candidates()

প্রার্থীর নাম অ্যালগরিদম বৈশিষ্ট্য ট্রান্সফরমার
dpp0-xgboost xgboost dpp0.py
dpp1-xgboost xgboost dpp1.py
dpp2-লিনিয়ার-শিক্ষক রৈখিক-শিক্ষক dpp2.py
dpp3-xgboost xgboost dpp3.py
dpp4-xgboost xgboost dpp4.py
dpp5-xgboost xgboost dpp5.py
dpp6-mlp mlp dpp6.py

সম্পূর্ণ অটোপাইলট পরীক্ষা দুটি অংশে করা হয়। প্রথমত, আপনাকে ডেটা ট্রান্সফরমেশন কাজগুলি চালাতে হবে:

automl_interactive_runner.fit_data_transformers(parallel_jobs=7)

আপনি যদি আর কোন পরিবর্তন না করেন তবে সমস্ত প্রার্থীদের জন্য এই পদক্ষেপটি প্রায় 30 মিনিটের মধ্যে সম্পন্ন করা উচিত dpp*.py ফাইল।

পরবর্তী ধাপ হল সংশ্লিষ্ট অ্যালগরিদমের জন্য হাইপারপ্যারামিটার টিউন করে মডেলের সেরা সেট তৈরি করা। হাইপারপ্যারামিটারগুলি সাধারণত দুটি ভাগে বিভক্ত হয়: স্ট্যাটিক এবং টিউনেবল। স্ট্যাটিক হাইপারপ্যারামিটারগুলি একই অ্যালগরিদম ভাগ করে এমন সমস্ত প্রার্থীদের জন্য পরীক্ষা জুড়ে অপরিবর্তিত থাকে। এই হাইপারপ্যারামিটারগুলি একটি অভিধান হিসাবে পরীক্ষায় পাস করা হয়। আপনি যদি পাঁচ-গুণ ক্রস-ভ্যালিডেশন স্কিমের তিনটি রাউন্ড থেকে AUC সর্বাধিক করে সেরা XGBoost মডেল বেছে নিতে চান, অভিধানটি নিম্নলিখিত কোডের মতো দেখায়:

{ 'objective': 'binary:logistic', 'eval_metric': 'auc', '_kfold': 5, '_num_cv_round': 3,
} 

টিউনযোগ্য হাইপারপ্যারামিটারের জন্য, আপনাকে রেঞ্জ এবং স্কেলিং টাইপ সহ আরেকটি অভিধান পাস করতে হবে:

{ 'num_round': IntegerParameter(64, 1024, scaling_type='Logarithmic'), 'max_depth': IntegerParameter(2, 8, scaling_type='Logarithmic'), 'eta': ContinuousParameter(1e-3, 1.0, scaling_type='Logarithmic'),
... }

হাইপারপ্যারামিটারের সম্পূর্ণ সেট পাওয়া যায় mangrove-2013.ipynb নোটবই.

একটি পরীক্ষা তৈরি করতে যেখানে সমস্ত সাত প্রার্থীকে সমান্তরালভাবে পরীক্ষা করা যেতে পারে, একটি মাল্টি-অ্যালগরিদম HPO টিউনার তৈরি করুন:

multi_algo_tuning_parameters = automl_interactive_runner.prepare_multi_algo_parameters( objective_metrics=ALGORITHM_OBJECTIVE_METRICS, static_hyperparameters=STATIC_HYPERPARAMETERS, hyperparameters_search_ranges=ALGORITHM_TUNABLE_HYPERPARAMETER_RANGES)

প্রতিটি অ্যালগরিদমের জন্য উদ্দেশ্য মেট্রিক্স স্বাধীনভাবে সংজ্ঞায়িত করা হয়:

ALGORITHM_OBJECTIVE_METRICS = { 'xgboost': 'validation:auc', 'linear-learner': 'validation:roc_auc_score', 'mlp': 'validation:roc_auc',
}

সমস্ত পরীক্ষা-নিরীক্ষার জন্য হাইপারপ্যারামিটারের সমস্ত সম্ভাব্য মান চেষ্টা করা বৃথা; আপনি একটি HPO টিউনার তৈরি করতে একটি Bayesian কৌশল গ্রহণ করতে পারেন:

multi_algo_tuning_inputs = automl_interactive_runner.prepare_multi_algo_inputs()
ase_tuning_job_name = "{}-tuning".format(AUTOML_LOCAL_RUN_CONFIG.local_automl_job_name) tuner = HyperparameterTuner.create( base_tuning_job_name=base_tuning_job_name, strategy='Bayesian', objective_type='Maximize', max_parallel_jobs=10, max_jobs=50, **multi_algo_tuning_parameters,
)

ডিফল্ট সেটিংয়ে, অটোপাইলট সেরা মডেল বাছাই করতে টিউনারে 250টি কাজ বেছে নেয়। এই ব্যবহারের ক্ষেত্রে, এটি সেট করা যথেষ্ট max_jobs=50 হাইপারপ্যারামিটারের সেরা সেট বাছাই করার ক্ষেত্রে কোন উল্লেখযোগ্য জরিমানা ছাড়াই সময় এবং সংস্থান বাঁচাতে। অবশেষে, নিম্নরূপ HPO কাজ জমা দিন:

tuner.fit(inputs=multi_algo_tuning_inputs, include_cls_metadata=None)

ml.m80x বড় দৃষ্টান্তে প্রক্রিয়াটি প্রায় 5.4 মিনিট সময় নেয়। আপনি বেছে নিয়ে সেজমেকার কনসোলে অগ্রগতি নিরীক্ষণ করতে পারেন হাইপারপ্যারামিটার টিউনিং কাজ অধীনে প্রশিক্ষণ নেভিগেশন ফলকে।

আপনি প্রগতিশীল কাজের নাম বেছে নিয়ে প্রতিটি প্রার্থীর কর্মক্ষমতা সহ দরকারী তথ্যের একটি হোস্ট কল্পনা করতে পারেন।

অবশেষে, সেরা প্রার্থীদের মডেল পারফরম্যান্সের তুলনা করুন নিম্নরূপ:

from sagemaker.analytics import HyperparameterTuningJobAnalytics SAGEMAKER_SESSION = AUTOML_LOCAL_RUN_CONFIG.sagemaker_session
SAGEMAKER_ROLE = AUTOML_LOCAL_RUN_CONFIG.role tuner_analytics = HyperparameterTuningJobAnalytics( tuner.latest_tuning_job.name, sagemaker_session=SAGEMAKER_SESSION) df_tuning_job_analytics = tuner_analytics.dataframe() df_tuning_job_analytics.sort_values( by=['FinalObjectiveValue'], inplace=True, ascending=False if tuner.objective_type == "Maximize" else True) # select the columns to display and rename
select_columns = ["TrainingJobDefinitionName", "FinalObjectiveValue", "TrainingElapsedTimeSeconds"]
rename_columns = { "TrainingJobDefinitionName": "candidate", "FinalObjectiveValue": "AUC", "TrainingElapsedTimeSeconds": "run_time" } # Show top 5 model performances
df_tuning_job_analytics.rename(columns=rename_columns)[rename_columns.values()].set_index("candidate").head(5)

প্রার্থী AUC রান_টাইম (গুলি)
dpp6-mlp 0.96008 2711.0
dpp4-xgboost 0.95236 385.0
dpp3-xgboost 0.95095 202.0
dpp4-xgboost 0.95069 458.0
dpp3-xgboost 0.95015 361.0

এমএলপি-র উপর ভিত্তি করে সেরা পারফরমিং মডেল, যদিও ডেটা প্রসেসিং পদক্ষেপের বিভিন্ন পছন্দ সহ XGBoost মডেলগুলির তুলনায় সামান্য ভাল, প্রশিক্ষণের জন্যও অনেক বেশি সময় লাগে। আপনি নিম্নলিখিত হিসাবে ব্যবহৃত হাইপারপ্যারামিটারের সংমিশ্রণ সহ MLP মডেল প্রশিক্ষণ সম্পর্কে গুরুত্বপূর্ণ বিবরণ পেতে পারেন:

df_tuning_job_analytics.loc[df_tuning_job_analytics.TrainingJobName==best_training_job].T.dropna() 

প্রশিক্ষণ কাজের নাম mangrove-2-notebook–211021-2016-012-500271c8
প্রশিক্ষণ জব স্ট্যাটাস সম্পন্ন হয়েছে
ফাইনাল অবজেক্টিভ ভ্যালু 0.96008
প্রশিক্ষণ শুরুর সময় 2021-10-21 20:22:55+00:00
প্রশিক্ষণ শেষ সময় 2021-10-21 21:08:06+00:00
প্রশিক্ষণ অতিবাহিত সময় সেকেন্ড 2711
TrainingJob DefinitionName dpp6-mlp
ড্রপআউট_সমস্যা 0.415778
এমবেডিং_সাইজ_ফ্যাক্টর 0.849226
স্তর 256
শেখার_হার 0.00013862
mini_batch_size 317
নেটওয়ার্ক টাইপ ফিডফোর্ড
ওজন_ক্ষয় 1.29323e -12

একটি অনুমান পাইপলাইন তৈরি করুন

নতুন ডেটাতে অনুমান তৈরি করতে, আপনাকে সেরা মডেল হোস্ট করতে সেজমেকারে একটি অনুমান পাইপলাইন তৈরি করতে হবে যা অনুমান তৈরি করতে পরে কল করা যেতে পারে। সেজমেকার পাইপলাইন মডেলটির উপাদান হিসেবে তিনটি পাত্রের প্রয়োজন: ডেটা ট্রান্সফরমেশন, অ্যালগরিদম এবং ইনভার্স লেবেল ট্রান্সফরমেশন (যদি সংখ্যাসূচক ভবিষ্যদ্বাণীগুলি অ-সংখ্যাসূচক লেবেলে ম্যাপ করতে হয়)। সংক্ষিপ্ততার জন্য, প্রয়োজনীয় কোডের শুধুমাত্র একটি অংশ নিম্নলিখিত স্নিপেটে দেখানো হয়েছে; সম্পূর্ণ কোড পাওয়া যায় mangrove-2013.ipynb নোটবই:

from sagemaker.estimator import Estimator
from sagemaker import PipelineModel
from sagemaker_automl import select_inference_output …
# Final pipeline model model_containers = [best_data_transformer_model, best_algo_model]
if best_candidate.transforms_label: model_containers.append(best_candidate.get_data_transformer_model( transform_mode="inverse-label-transform", role=SAGEMAKER_ROLE, sagemaker_session=SAGEMAKER_SESSION)) # select the output type
model_containers = select_inference_output("BinaryClassification", model_containers, output_keys=['predicted_label'])

মডেল কন্টেইনারগুলি তৈরি করার পরে, আপনি নিম্নরূপ পাইপলাইন তৈরি এবং স্থাপন করতে পারেন:

from sagemaker import PipelineModel pipeline_model = PipelineModel( name=f"mangrove-automl-2013", role=SAGEMAKER_ROLE, models=model_containers, vpc_config=AUTOML_LOCAL_RUN_CONFIG.vpc_config) pipeline_model.deploy(initial_instance_count=1, instance_type='ml.m5.2xlarge', endpoint_name=pipeline_model.name, wait=True)

শেষ পয়েন্ট স্থাপনা সম্পূর্ণ হতে প্রায় 10 মিনিট সময় নেয়।

একটি শেষ পয়েন্ট ব্যবহার করে পরীক্ষার ডেটাসেটের উপর অনুমান পান

এন্ডপয়েন্ট মোতায়েন করার পরে, আপনি একটি চিত্রের প্রতিটি পিক্সেলকে ম্যানগ্রোভ (1) বা অন্য (7) হিসাবে শ্রেণীবদ্ধ করতে B1–B0 বৈশিষ্ট্যগুলির একটি পেলোড সহ এটিকে আহ্বান করতে পারেন:

import boto3
sm_runtime = boto3.client('runtime.sagemaker') pred_labels = []
with open(local_download, 'r') as f: for i, row in enumerate(f): payload = row.rstrip('n') x = sm_runtime.invoke_endpoint(EndpointName=inf_endpt, ContentType="text/csv", Body=payload) pred_labels.append(int(x['Body'].read().decode().strip()))

মূল্যায়ন এবং প্লটিংয়ের জন্য মডেল ভবিষ্যদ্বাণীগুলির পোস্টপ্রসেসিং সম্পর্কে সম্পূর্ণ বিবরণ পাওয়া যায় notebooks/model_performance.ipynb.

একটি ব্যাচ ট্রান্সফর্ম ব্যবহার করে পরীক্ষার ডেটাসেটের অনুমান পান

এখন আপনি অটোপাইলট দিয়ে সেরা-পারফর্মিং মডেল তৈরি করেছেন, আমরা অনুমানের জন্য মডেলটি ব্যবহার করতে পারি। বড় ডেটাসেটের অনুমান পেতে, একটি ব্যাচ ট্রান্সফর্ম ব্যবহার করা আরও দক্ষ। আসুন পুরো ডেটাসেটের (প্রশিক্ষণ এবং পরীক্ষা) ভবিষ্যদ্বাণী তৈরি করি এবং ফলাফলগুলিকে বৈশিষ্ট্যগুলিতে যুক্ত করি, যাতে আমরা আরও বিশ্লেষণ করতে পারি, উদাহরণস্বরূপ, ভবিষ্যদ্বাণী করা বনাম বাস্তব এবং ভবিষ্যদ্বাণী করা ক্লাসগুলির মধ্যে বৈশিষ্ট্যগুলির বিতরণ পরীক্ষা করতে পারি৷

প্রথমত, আমরা Amazon S3-এ একটি ম্যানিফেস্ট ফাইল তৈরি করি যা পূর্ববর্তী ডেটা প্রক্রিয়াকরণ পদক্ষেপগুলি থেকে প্রশিক্ষণের অবস্থান এবং পরীক্ষার ডেটা নির্দেশ করে:

import boto3
data_bucket = <Name of the S3 bucket that has the training data>
prefix = "LANDSAT_LC08_C01_T1_SR/Year2013"
manifest = "[{{"prefix": "s3://{}/{}/"}},n"train.csv",n"test.csv"n]".format(data_bucket, prefix)
s3_client = boto3.client('s3')
s3_client.put_object(Body=manifest, Bucket=data_bucket, Key=f"{prefix}/data.manifest")

এখন আমরা একটি ব্যাচ ট্রান্সফর্ম কাজ তৈরি করতে পারি। কারণ আমাদের ইনপুট ট্রেন এবং টেস্ট ডেটাসেট আছে label শেষ কলাম হিসাবে, অনুমানের সময় আমাদের এটি ফেলে দিতে হবে। যে করতে, আমরা পাস InputFilter মধ্যে DataProcessing যুক্তি. কোড "$[:-2]" শেষ কলাম ড্রপ ইঙ্গিত. পরবর্তী বিশ্লেষণের জন্য পূর্বাভাসিত আউটপুট উত্স ডেটার সাথে যুক্ত হয়।

নিম্নলিখিত কোডে, আমরা ব্যাচ ট্রান্সফর্ম কাজের জন্য আর্গুমেন্ট তৈরি করি এবং তারপরে পাস করি create_transform_job ফাংশন:

from time import gmtime, strftime batch_job_name = "Batch-Transform-" + strftime("%Y-%m-%d-%H-%M-%S", gmtime())
output_location = "s3://{}/{}/batch_output/{}".format(data_bucket, prefix, batch_job_name)
input_location = "s3://{}/{}/data.manifest".format(data_bucket, prefix) request = { "TransformJobName": batch_job_name, "ModelName": pipeline_model.name, "TransformOutput": { "S3OutputPath": output_location, "Accept": "text/csv", "AssembleWith": "Line", }, "TransformInput": { "DataSource": {"S3DataSource": {"S3DataType": "ManifestFile", "S3Uri": input_location}}, "ContentType": "text/csv", "SplitType": "Line", "CompressionType": "None", }, "TransformResources": {"InstanceType": "ml.m4.xlarge", "InstanceCount": 1}, "DataProcessing": {"InputFilter": "$[:-2]", "JoinSource": "Input"}
} sagemaker = boto3.client("sagemaker")
sagemaker.create_transform_job(**request)
print("Created Transform job with name: ", batch_job_name)

আপনি SageMaker কনসোলে কাজের অবস্থা নিরীক্ষণ করতে পারেন।

মডেল কর্মক্ষমতা কল্পনা করুন

আপনি এখন একটি বিভ্রান্তি ম্যাট্রিক্স হিসাবে ভারত, মায়ানমার, কিউবা এবং ভিয়েতনাম থেকে অঞ্চলগুলি নিয়ে গঠিত পরীক্ষার ডেটাসেটে সেরা মডেলের কার্যকারিতা কল্পনা করতে পারেন৷ মডেলটিতে ম্যানগ্রোভের প্রতিনিধিত্বকারী পিক্সেলগুলির জন্য একটি উচ্চ প্রত্যাহার মান রয়েছে, তবে মাত্র 75% নির্ভুলতা। নন-ম্যানগ্রোভ বা অন্যান্য পিক্সেলের নির্ভুলতা 99% রিকল সহ 85% এ দাঁড়িয়েছে। আপনি নির্দিষ্ট ব্যবহারের ক্ষেত্রে নির্ভর করে সংশ্লিষ্ট মানগুলি সামঞ্জস্য করতে মডেল ভবিষ্যদ্বাণীগুলির সম্ভাব্যতা কাটঅফ টিউন করতে পারেন।

এটি লক্ষণীয় যে বিল্ট-ইন স্মাইলকার্ট মডেলের তুলনায় ফলাফলগুলি একটি উল্লেখযোগ্য উন্নতি।

মডেল ভবিষ্যদ্বাণী কল্পনা করুন

অবশেষে, মানচিত্রে নির্দিষ্ট অঞ্চলে মডেলের কার্যকারিতা পর্যবেক্ষণ করা দরকারী। নিম্নলিখিত ছবিতে, ভারত-বাংলাদেশ সীমান্তের ম্যানগ্রোভ এলাকাটিকে লাল রঙে চিত্রিত করা হয়েছে। টেস্ট ডেটাসেটের অন্তর্গত ল্যান্ডস্যাট ইমেজ প্যাচ থেকে নমুনা করা পয়েন্টগুলি অঞ্চলের উপর চাপানো হয়, যেখানে প্রতিটি বিন্দু একটি পিক্সেল যা মডেলটি ম্যানগ্রোভের প্রতিনিধিত্ব করে তা নির্ধারণ করে। নীল বিন্দুগুলি মডেল দ্বারা সঠিকভাবে শ্রেণীবদ্ধ করা হয়, যেখানে কালো পয়েন্টগুলি মডেলের ভুলগুলিকে উপস্থাপন করে।

নিম্নলিখিত চিত্রটি কেবলমাত্র সেই পয়েন্টগুলি দেখায় যা মডেলটি ম্যানগ্রোভকে প্রতিনিধিত্ব করবে না বলে ভবিষ্যদ্বাণী করেছিল, পূর্বের উদাহরণের মতো একই রঙের স্কিম। ধূসর রূপরেখাটি ল্যান্ডস্যাট প্যাচের অংশ যা কোনো ম্যানগ্রোভ অন্তর্ভুক্ত করে না। চিত্র থেকে স্পষ্ট, মডেলটি জলের উপর বিন্দু শ্রেণীবদ্ধ করতে কোনও ভুল করে না, তবে নিয়মিত পাতার প্রতিনিধিত্বকারী পিক্সেলগুলি থেকে ম্যানগ্রোভের প্রতিনিধিত্বকারী পিক্সেলগুলিকে আলাদা করার সময় একটি চ্যালেঞ্জের সম্মুখীন হয়৷

নিম্নলিখিত চিত্রটি মিয়ানমারের ম্যানগ্রোভ অঞ্চলে মডেলের কর্মক্ষমতা দেখায়।

নিম্নলিখিত ছবিতে, মডেলটি ম্যানগ্রোভ পিক্সেল সনাক্ত করার জন্য একটি ভাল কাজ করে।

পরিষ্কার কর

সেজমেকার ইনফারেন্স এন্ডপয়েন্টটি চলতে থাকলে খরচ বহন করতে থাকে। আপনার কাজ শেষ হলে নিম্নরূপ শেষ পয়েন্ট মুছুন:

sagemaker.delete_endpoint(EndpointName=pipeline_model.name)

উপসংহার

পোস্টের এই সিরিজটি জিআইএস সমস্যা সমাধানের জন্য ডেটা বিজ্ঞানীদের জন্য শেষ থেকে শেষ ফ্রেমওয়ার্ক প্রদান করেছে। পার্ট 1 ETL প্রক্রিয়া এবং তথ্যের সাথে দৃশ্যত ইন্টারঅ্যাক্ট করার একটি সুবিধাজনক উপায় দেখিয়েছে। পার্ট 2 দেখিয়েছে কিভাবে একটি কাস্টম ম্যানগ্রোভ ক্লাসিফায়ার তৈরি করতে স্বয়ংক্রিয়ভাবে অটোপাইলট ব্যবহার করতে হয়।

আপনি এই ফ্রেমওয়ার্কটি ব্যবহার করতে পারেন নতুন স্যাটেলাইট ডেটাসেট অন্বেষণ করতে যাতে ম্যানগ্রোভ শ্রেণীবিভাগের জন্য দরকারী ব্যান্ডগুলির একটি সমৃদ্ধ সেট রয়েছে এবং ডোমেন জ্ঞান অন্তর্ভুক্ত করে বৈশিষ্ট্য প্রকৌশল অন্বেষণ করতে পারেন।


লেখক সম্পর্কে

আন্দ্রেই ইভানোভিচ তিনি টরন্টো বিশ্ববিদ্যালয়ের কম্পিউটার সায়েন্সের স্নাতকোত্তর ছাত্র এবং টরন্টো বিশ্ববিদ্যালয়ের ইঞ্জিনিয়ারিং সায়েন্স প্রোগ্রামের সাম্প্রতিক স্নাতক, একজন রোবোটিক্স/মেকাট্রনিক্স নাবালকের সাথে মেশিন ইন্টেলিজেন্সে মেজর। তিনি কম্পিউটার দৃষ্টি, গভীর শিক্ষা এবং রোবোটিক্সে আগ্রহী। তিনি আমাজনে তার গ্রীষ্মকালীন ইন্টার্নশিপের সময় এই পোস্টে উপস্থাপিত কাজটি করেছিলেন।

ডেভিড ডং অ্যামাজন ওয়েব সার্ভিসেসের একজন ডেটা সায়েন্টিস্ট।

অর্কজ্যোতি মিশ্র অ্যামাজন লাস্টমাইল ট্রান্সপোর্টেশনের একজন ডেটা সায়েন্টিস্ট। তিনি পৃথিবীকে সাহায্য করে এমন সমস্যা সমাধানের জন্য কম্পিউটার ভিশন কৌশল প্রয়োগ করার বিষয়ে উত্সাহী। তিনি অলাভজনক সংস্থার সাথে কাজ করতে ভালবাসেন এবং এর প্রতিষ্ঠাতা সদস্য ekipi.org.

সময় স্ট্যাম্প:

থেকে আরো এডাব্লুএস মেশিন লার্নিং

রিফিনিটিভ ডেটা লাইব্রেরি, এডব্লিউএস পরিষেবা এবং অ্যামাজন সেজমেকার সহ রিয়েল-টাইম নিউজ স্ট্রিম সমৃদ্ধ করা

উত্স নোড: 1891571
সময় স্ট্যাম্প: জানুয়ারী 11, 2023

অ্যামাজন সেজমেকার স্টুডিও এবং সেজমেকার নোটবুক ইন্সট্যান্স এখন জুপিটারল্যাব 3 নোটবুকের সাথে বিকাশকারীর উত্পাদনশীলতা বাড়াতে এসেছে

উত্স নোড: 1344320
সময় স্ট্যাম্প: জুন 6, 2022