Amazon SageMaker میں TensorFlow آبجیکٹ کا پتہ لگانے والے ماڈلز کے لیے سیکھنے کو منتقل کریں۔

ایمیزون سیج میکر کا ایک سوٹ فراہم کرتا ہے۔ بلٹ ان الگورتھم, پہلے سے تربیت یافتہ ماڈلز، اور پری بلٹ حل ٹیمپلیٹس ڈیٹا سائنسدانوں اور مشین لرننگ (ML) پریکٹیشنرز کو ML ماڈلز کو تیزی سے تربیت اور تعینات کرنے میں مدد کرنے کے لیے۔ آپ ان الگورتھم اور ماڈلز کو زیر نگرانی اور غیر زیر نگرانی سیکھنے کے لیے استعمال کر سکتے ہیں۔ وہ مختلف قسم کے ان پٹ ڈیٹا پر کارروائی کر سکتے ہیں، بشمول ٹیبلر، تصویر اور متن۔

یہ پوسٹ سیج میکر میں نئے بلٹ ان الگورتھم کی سیریز میں دوسری ہے۔ میں پہلی پوسٹ، ہم نے دکھایا کہ کس طرح SageMaker تصویر کی درجہ بندی کے لیے ایک بلٹ ان الگورتھم فراہم کرتا ہے۔ آج، ہم اعلان کرتے ہیں کہ SageMaker TensorFlow کا استعمال کرتے ہوئے آبجیکٹ کا پتہ لگانے کے لیے ایک نیا بلٹ ان الگورتھم فراہم کرتا ہے۔ یہ زیر نگرانی سیکھنے کا الگورتھم TensorFlow میں دستیاب بہت سے پہلے سے تربیت یافتہ ماڈلز کے لیے ٹرانسفر لرننگ کی حمایت کرتا ہے۔ یہ ان پٹ کے طور پر ایک تصویر لیتا ہے اور باؤنڈنگ بکس کے ساتھ تصویر میں موجود اشیاء کو آؤٹ پٹ کرتا ہے۔ آپ ٹرانسفر لرننگ کا استعمال کرتے ہوئے ان پہلے سے تربیت یافتہ ماڈلز کو ٹھیک کر سکتے ہیں یہاں تک کہ جب بڑی تعداد میں تربیتی تصاویر دستیاب نہ ہوں۔ یہ سیج میکر کے ذریعے دستیاب ہے۔ بلٹ ان الگورتھم اس کے ساتھ ساتھ سیج میکر جمپ اسٹارٹ UI in ایمیزون سیج میکر اسٹوڈیو. مزید معلومات کے لیے رجوع کریں۔ آبجیکٹ کا پتہ لگانے والا ٹینسر فلو اور مثال نوٹ بک سیج میکر ٹینسر فلو کا تعارف - آبجیکٹ کا پتہ لگانا.

SageMaker میں TensorFlow کے ساتھ آبجیکٹ کا پتہ لگانا TensorFlow Hub میں دستیاب بہت سے پہلے سے تربیت یافتہ ماڈلز پر ٹرانسفر لرننگ فراہم کرتا ہے۔ ٹریننگ ڈیٹا میں کلاس لیبلز کی تعداد کے مطابق، ایک نیا تصادفی طور پر شروع کردہ آبجیکٹ کا پتہ لگانے والا ہیڈ TensorFlow ماڈل کے موجودہ ہیڈ کی جگہ لے لیتا ہے۔ یا تو پورا نیٹ ورک، بشمول پہلے سے تربیت یافتہ ماڈل، یا صرف اوپری تہہ (آبجیکٹ ڈیٹیکشن ہیڈ) کو نئے ٹریننگ ڈیٹا پر ٹھیک بنایا جا سکتا ہے۔ اس ٹرانسفر لرننگ موڈ میں، آپ چھوٹے ڈیٹا سیٹ کے ساتھ بھی تربیت حاصل کر سکتے ہیں۔

نئے TensorFlow آبجیکٹ کا پتہ لگانے والے الگورتھم کا استعمال کیسے کریں۔

یہ سیکشن بیان کرتا ہے کہ TensorFlow آبجیکٹ کا پتہ لگانے والے الگورتھم کو کس طرح استعمال کیا جائے۔ SageMaker Python SDK. اسٹوڈیو UI سے اسے استعمال کرنے کے طریقے کے بارے میں معلومات کے لیے، دیکھیں سیج میکر جمپ اسٹارٹ.

الگورتھم میں درج پہلے سے تربیت یافتہ ماڈلز کے لیے ٹرانسفر لرننگ کی حمایت کرتا ہے۔ ٹینسر فلو ماڈل. ہر ماڈل کی شناخت ایک منفرد سے ہوتی ہے۔ model_id. مندرجہ ذیل کوڈ سے پتہ چلتا ہے کہ کس طرح ایک ResNet50 V1 FPN ماڈل جس کے ذریعے شناخت کیا گیا ہے اسے ٹھیک بنایا جائے۔ model_id tensorflow-od1-ssd-resnet50-v1-fpn-640x640-coco17-tpu-8 کسٹم ٹریننگ ڈیٹاسیٹ پر۔ ہر ایک کے لئے model_idکے ذریعے سیج میکر ٹریننگ کا کام شروع کرنے کے لیے تخمینہ SageMaker Python SDK کی کلاس میں، آپ کو SageMaker میں فراہم کردہ یوٹیلیٹی فنکشنز کے ذریعے Docker امیج URI، ٹریننگ اسکرپٹ URI، اور پہلے سے تربیت یافتہ ماڈل URI لانے کی ضرورت ہے۔ ٹریننگ اسکرپٹ URI میں ڈیٹا پروسیسنگ، پہلے سے تربیت یافتہ ماڈل لوڈ کرنے، ماڈل ٹریننگ، اور تربیت یافتہ ماڈل کو اندازہ کے لیے محفوظ کرنے کے لیے تمام ضروری کوڈ شامل ہیں۔ پہلے سے تربیت یافتہ ماڈل URI میں پہلے سے تربیت یافتہ ماڈل فن تعمیر کی تعریف اور ماڈل کے پیرامیٹرز شامل ہیں۔ نوٹ کریں کہ Docker امیج URI اور ٹریننگ اسکرپٹ URI تمام TensorFlow آبجیکٹ کا پتہ لگانے والے ماڈلز کے لیے ایک جیسے ہیں۔ پہلے سے تربیت یافتہ ماڈل URI مخصوص ماڈل کے لیے مخصوص ہے۔ پہلے سے تربیت یافتہ ماڈل ٹربالز کو TensorFlow سے پہلے سے ڈاؤن لوڈ کیا گیا ہے اور مناسب ماڈل کے دستخط کے ساتھ محفوظ کیا گیا ہے۔ ایمیزون سادہ اسٹوریج سروس (ایمیزون S3) بالٹیاں، اس طرح کہ تربیتی کام نیٹ ورک تنہائی میں چلتا ہے۔ درج ذیل کوڈ دیکھیں:

from sagemaker import image_uris, model_uris, script_urisfrom sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-od1-ssd-resnet50-v1-fpn-640x640-coco17-tpu-8", "*"
training_instance_type = "ml.p3.2xlarge"
# Retrieve the docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")# Retrieve the pre-trained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-tensorflow-od-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

ان ماڈل کے ساتھ مخصوص تربیتی نمونے کے ساتھ، آپ ایک آبجیکٹ بنا سکتے ہیں۔ تخمینہ کلاس:

# Create SageMaker Estimator instance
tf_od_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,)

اس کے بعد، اپنے حسب ضرورت ڈیٹاسیٹ پر سیکھنے کی منتقلی کے لیے، آپ کو ٹریننگ ہائپر پیرامیٹر کی ڈیفالٹ اقدار کو تبدیل کرنے کی ضرورت پڑسکتی ہے، جو درج ذیل میں درج ہیں۔ ہائپرپیرامیٹر. آپ کال کر کے ان ہائپر پیرامیٹر کی ڈیفالٹ اقدار کے ساتھ ازگر کی لغت حاصل کر سکتے ہیں۔ hyperparameters.retrieve_default، انہیں ضرورت کے مطابق اپ ڈیٹ کریں، اور پھر انہیں تخمینہ لگانے والی کلاس میں منتقل کریں۔ نوٹ کریں کہ کچھ ہائپرپیرامیٹرس کی ڈیفالٹ قدریں مختلف ماڈلز کے لیے مختلف ہیں۔ بڑے ماڈلز کے لیے، پہلے سے طے شدہ بیچ کا سائز چھوٹا ہوتا ہے۔ train_only_top_layer hyperparameter پر سیٹ کیا گیا ہے۔ True. ہائپر پیرامیٹر train_only_top_layer وضاحت کرتا ہے کہ کون سے ماڈل کے پیرامیٹرز فائن ٹیوننگ کے عمل کے دوران تبدیل ہوتے ہیں۔ اگر train_only_top_layer is True، درجہ بندی کی تہوں کے پیرامیٹرز بدل جاتے ہیں اور باقی پیرامیٹرز فائن ٹیوننگ کے عمل کے دوران مستقل رہتے ہیں۔ دوسری طرف، اگر train_only_top_layer is False، ماڈل کے تمام پیرامیٹرز ٹھیک ہیں۔ درج ذیل کوڈ دیکھیں:

from sagemaker import hyperparameters# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

ہم فراہم کرتے ہیں PennFudanPed ڈیٹاسیٹ ماڈلز کو ٹھیک کرنے کے لیے بطور ڈیفالٹ ڈیٹاسیٹ۔ ڈیٹا سیٹ پیدل چلنے والوں کی تصاویر پر مشتمل ہے۔ درج ذیل کوڈ S3 بالٹیوں میں ہوسٹ کردہ ڈیفالٹ ٹریننگ ڈیٹاسیٹ فراہم کرتا ہے:

# Sample training data is available in this bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/PennFudanPed_COCO_format/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

آخر میں، ماڈل کو ٹھیک کرنے کے لیے سیج میکر ٹریننگ جاب شروع کرنے کے لیے، کال کریں۔ .fit تخمینہ لگانے والے کلاس کے اعتراض پر، تربیتی ڈیٹاسیٹ کے S3 مقام کو پاس کرتے ہوئے:

# Launch a SageMaker Training job by passing s3 path of the training data
tf_od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

کسٹم ڈیٹاسیٹ پر ٹرانسفر لرننگ کے لیے نئے SageMaker TensorFlow آبجیکٹ کا پتہ لگانے والے الگورتھم کو استعمال کرنے کے بارے میں مزید معلومات کے لیے، فائن ٹیونڈ ماڈل کو تعینات کریں، تعینات کردہ ماڈل پر انفرنس چلائیں، اور پہلے سے تربیت یافتہ ماڈل کو تعینات کریں جیسا کہ پہلی بار فائن ٹیوننگ کے بغیر ہے۔ حسب ضرورت ڈیٹاسیٹ پر، درج ذیل مثال نوٹ بک دیکھیں: سیج میکر ٹینسر فلو کا تعارف - آبجیکٹ کا پتہ لگانا.

TensorFlow آبجیکٹ کا پتہ لگانے کے الگورتھم کے لیے ان پٹ/آؤٹ پٹ انٹرفیس

آپ پہلے سے تربیت یافتہ ماڈلز میں درج ہر ایک کو ٹھیک کر سکتے ہیں۔ ٹینسر فلو ماڈلز کسی بھی دیے گئے ڈیٹاسیٹ کو جس میں کسی بھی تعداد کی کلاسز سے تعلق رکھنے والی تصاویر شامل ہوں۔ مقصد ان پٹ ڈیٹا پر پیشین گوئی کی غلطی کو کم کرنا ہے۔ فائن ٹیوننگ کے ذریعے واپس آنے والے ماڈل کو مزید اندازہ لگانے کے لیے تعینات کیا جا سکتا ہے۔ ماڈل میں ان پٹ کے لیے ٹریننگ ڈیٹا کو کس طرح فارمیٹ کیا جانا چاہیے اس کے لیے مندرجہ ذیل ہدایات ہیں:

  • ان پٹ - ذیلی ڈائرکٹری امیجز اور فائل کے ساتھ ایک ڈائرکٹری annotations.json.
  • آؤٹ پٹ - دو آؤٹ پٹ ہیں۔ سب سے پہلے ایک عمدہ ماڈل ہے، جسے تخمینہ کے لیے تعینات کیا جا سکتا ہے یا اضافی تربیت کا استعمال کرتے ہوئے مزید تربیت دی جا سکتی ہے۔ دوسری ایک فائل ہے جو کلاس کے اشاریہ جات کو کلاس لیبلز پر نقش کرتی ہے۔ یہ ماڈل کے ساتھ محفوظ ہے۔

ان پٹ ڈائرکٹری کو مندرجہ ذیل مثال کی طرح نظر آنا چاہئے:

input_directory
      | -- images
            |--abc.png
            |--def.png
      |--annotations.json

۔ annotations.json فائل کے لیے معلومات ہونی چاہیے۔ bounding_boxes اور ان کے کلاس لیبلز۔ اس میں چابیاں کے ساتھ ایک لغت ہونی چاہیے۔ "images" اور "annotations". کی قدر "images" کلید اندراجات کی فہرست ہونی چاہیے، فارم کی ہر تصویر کے لیے ایک {"file_name": image_name, "height": height, "width": width, "id": image_id}. کی قدر "annotations" کلید اندراجات کی فہرست ہونی چاہیے، فارم کے ہر باؤنڈنگ باکس کے لیے ایک {"image_id": image_id, "bbox": [xmin, ymin, xmax, ymax], "category_id": bbox_label}.

TensorFlow آبجیکٹ کا پتہ لگانے کے الگورتھم کے ساتھ اندازہ

تیار کردہ ماڈلز کو انکوڈڈ .jpg، .jpeg، اور .png امیج فارمیٹس کے طور پر اندازہ لگانے اور سپورٹ کرنے کے لیے ہوسٹ کیا جا سکتا ہے۔ application/x-image مواد کی قسم. ان پٹ امیج کا سائز خود بخود بدل جاتا ہے۔ آؤٹ پٹ میں باکسز، پیشین گوئی کی گئی کلاسز، اور ہر پیشین گوئی کے اسکور ہوتے ہیں۔ TensorFlow آبجیکٹ کا پتہ لگانے والا ماڈل فی درخواست ایک تصویر پر کارروائی کرتا ہے اور JSON میں صرف ایک لائن کو آؤٹ پٹ کرتا ہے۔ JSON میں جواب کی ایک مثال درج ذیل ہے:

accept: application/json;verbose

{"normalized_boxes":[[xmin1, xmax1, ymin1, ymax1],....], "classes":[classidx1, class_idx2,...], "scores":[score_1, score_2,...], "labels": [label1, label2, ...], "tensorflow_model_output":}

If accept کرنے کے لئے مقرر کیا گیا ہے application/json، پھر ماڈل صرف پیشن گوئی شدہ خانوں، کلاسز، اور اسکورز کو آؤٹ پٹ کرتا ہے۔ تربیت اور تخمینہ کے بارے میں مزید تفصیلات کے لیے، نمونہ نوٹ بک دیکھیں سیج میکر ٹینسر فلو کا تعارف - آبجیکٹ کا پتہ لگانا.

JumpStart UI کے ذریعے SageMaker بلٹ ان الگورتھم استعمال کریں۔

آپ جمپ اسٹارٹ UI کے ذریعے چند کلکس کے ساتھ SageMaker TensorFlow آبجیکٹ کا پتہ لگانے اور دیگر بلٹ ان الگورتھم میں سے کوئی بھی استعمال کر سکتے ہیں۔ جمپ سٹارٹ ایک سیج میکر خصوصیت ہے جو آپ کو گرافیکل انٹرفیس کے ذریعے مختلف ایم ایل فریم ورکس اور ماڈل ہب سے بلٹ ان الگورتھم اور پہلے سے تربیت یافتہ ماڈلز کو تربیت اور تعینات کرنے کی اجازت دیتی ہے۔ یہ آپ کو مکمل طور پر تیار کردہ ML حل تعینات کرنے کی بھی اجازت دیتا ہے جو ML ماڈلز اور مختلف دیگر AWS سروسز کو ایک دوسرے کے ساتھ سٹرنگ کرتے ہوئے ایک ہدف شدہ استعمال کے معاملے کو حل کرتے ہیں۔

ذیل میں دو ویڈیوز ہیں جو یہ بتاتے ہیں کہ آپ اسی فائن ٹیوننگ اور تعیناتی کے عمل کو کس طرح نقل کر سکتے ہیں جس سے ہم ابھی جمپ سٹارٹ UI کے ذریعے چند کلکس سے گزرے ہیں۔

پہلے سے تربیت یافتہ ماڈل کو ٹھیک بنائیں

یہاں ایک ہی پہلے سے تربیت یافتہ آبجیکٹ کا پتہ لگانے کے ماڈل کو ٹھیک کرنے کا عمل ہے۔

نفیس ماڈل تعینات کریں۔

ماڈل ٹریننگ ختم ہونے کے بعد، آپ ایک کلک کے ساتھ ماڈل کو مستقل، ریئل ٹائم اینڈ پوائنٹ پر براہ راست تعینات کر سکتے ہیں۔

نتیجہ

اس پوسٹ میں، ہم نے SageMaker TensorFlow آبجیکٹ کا پتہ لگانے کا بلٹ ان الگورتھم شروع کرنے کا اعلان کیا۔ ہم نے اس الگورتھم کا استعمال کرتے ہوئے TensorFlow سے پہلے سے تربیت یافتہ ماڈل کا استعمال کرتے ہوئے کسٹم ڈیٹاسیٹ پر ٹرانسفر لرننگ کرنے کے طریقے کے بارے میں مثالی کوڈ فراہم کیا۔

مزید معلومات کے لئے، چیک کریں دستاویزات اور مثال کے طور پر نوٹ بک.


مصنفین کے بارے میں

Transfer learning for TensorFlow object detection models in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.ڈاکٹر وویک مدن کے ساتھ ایک اپلائیڈ سائنٹسٹ ہے۔ ایمیزون سیج میکر جمپ اسٹارٹ ٹیم. انہوں نے Urbana-Champaign میں یونیورسٹی آف الینوائے سے پی ایچ ڈی کی اور جارجیا ٹیک میں پوسٹ ڈاکٹریٹ ریسرچر تھے۔ وہ مشین لرننگ اور الگورتھم ڈیزائن میں ایک فعال محقق ہے اور اس نے EMNLP، ICLR، COLT، FOCS، اور SODA کانفرنسوں میں مقالے شائع کیے ہیں۔

Transfer learning for TensorFlow object detection models in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.جواؤ مورا ایمیزون ویب سروسز میں ایک AI/ML ماہر حل آرکیٹیکٹ ہے۔ وہ زیادہ تر NLP کے استعمال کے معاملات پر توجہ مرکوز کرتا ہے اور صارفین کو گہری سیکھنے کے ماڈل کی تربیت اور تعیناتی کو بہتر بنانے میں مدد کرتا ہے۔ وہ کم کوڈ ایم ایل سلوشنز اور ایم ایل اسپیشلائزڈ ہارڈ ویئر کا ایک فعال حامی بھی ہے۔

Transfer learning for TensorFlow object detection models in Amazon SageMaker PlatoBlockchain Data Intelligence. Vertical Search. Ai.ڈاکٹر آشیش کھیتان کے ساتھ ایک سینئر اپلائیڈ سائنٹسٹ ہے۔ ایمیزون سیج میکر بلٹ ان الگورتھم اور مشین لرننگ الگورتھم تیار کرنے میں مدد کرتا ہے۔ انہوں نے یونیورسٹی آف الینوائے اربانا چیمپین سے پی ایچ ڈی کی ڈگری حاصل کی۔ وہ مشین لرننگ اور شماریاتی اندازہ میں ایک فعال محقق ہے اور اس نے NeurIPS، ICML، ICLR، JMLR، ACL، اور EMNLP کانفرنسوں میں بہت سے مقالے شائع کیے ہیں۔

ٹائم اسٹیمپ:

سے زیادہ AWS مشین لرننگ