Amazon SageMaker-এ TensorFlow অবজেক্ট ডিটেকশন মডেলের জন্য ট্রান্সফার লার্নিং

আমাজন সেজমেকার এর একটি স্যুট প্রদান করে অন্তর্নির্মিত অ্যালগরিদম, প্রাক-প্রশিক্ষিত মডেল, এবং প্রাক-নির্মিত সমাধান টেমপ্লেট ডেটা সায়েন্টিস্ট এবং মেশিন লার্নিং (ML) অনুশীলনকারীদের প্রশিক্ষণ এবং এমএল মডেলগুলি দ্রুত স্থাপন করা শুরু করতে সহায়তা করার জন্য। আপনি এই অ্যালগরিদম এবং মডেলগুলিকে তত্ত্বাবধানে এবং তত্ত্বাবধানহীন শিক্ষার জন্য ব্যবহার করতে পারেন। তারা ট্যাবুলার, চিত্র এবং পাঠ্য সহ বিভিন্ন ধরণের ইনপুট ডেটা প্রক্রিয়া করতে পারে।

এই পোস্টটি সেজমেকার-এ নতুন বিল্ট-ইন অ্যালগরিদমের সিরিজের দ্বিতীয়। মধ্যে প্রথম পোস্ট, আমরা দেখিয়েছি কিভাবে SageMaker ছবির শ্রেণীবিভাগের জন্য একটি অন্তর্নির্মিত অ্যালগরিদম প্রদান করে। আজ, আমরা ঘোষণা করছি যে SageMaker TensorFlow ব্যবহার করে অবজেক্ট সনাক্তকরণের জন্য একটি নতুন বিল্ট-ইন অ্যালগরিদম প্রদান করে। এই তত্ত্বাবধানে শেখার অ্যালগরিদম TensorFlow-এ উপলব্ধ অনেক প্রাক-প্রশিক্ষিত মডেলের জন্য ট্রান্সফার লার্নিং সমর্থন করে। এটি একটি ইমেজকে ইনপুট হিসেবে নেয় এবং বাউন্ডিং বক্সের সাথে ইমেজে উপস্থিত বস্তুগুলোকে আউটপুট করে। আপনি ট্রান্সফার লার্নিং ব্যবহার করে এই প্রাক-প্রশিক্ষিত মডেলগুলিকে সূক্ষ্ম-টিউন করতে পারেন এমনকি যখন প্রচুর সংখ্যক প্রশিক্ষণের চিত্র উপলব্ধ না থাকে। এটি সেজমেকারের মাধ্যমে উপলব্ধ অন্তর্নির্মিত অ্যালগরিদম পাশাপাশি সেজমেকার জাম্পস্টার্ট UI in অ্যামাজন সেজমেকার স্টুডিও. আরো তথ্যের জন্য, পড়ুন অবজেক্ট ডিটেকশন টেনসরফ্লো এবং উদাহরণ নোটবুক SageMaker Tensorflow এর ভূমিকা - অবজেক্ট ডিটেকশন.

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

নতুন TensorFlow অবজেক্ট ডিটেকশন অ্যালগরিদম কীভাবে ব্যবহার করবেন

এই বিভাগে টেনসরফ্লো অবজেক্ট ডিটেকশন অ্যালগরিদম কীভাবে ব্যবহার করবেন তা বর্ণনা করে সেজমেকার পাইথন এসডিকে. স্টুডিও UI থেকে এটি কীভাবে ব্যবহার করবেন সে সম্পর্কে তথ্যের জন্য, দেখুন সেজমেকার জাম্পস্টার্ট.

অ্যালগরিদম তালিকাভুক্ত প্রাক-প্রশিক্ষিত মডেলগুলির জন্য স্থানান্তর শিক্ষাকে সমর্থন করে টেনসরফ্লো মডেল. প্রতিটি মডেল একটি অনন্য দ্বারা চিহ্নিত করা হয় model_id. নিম্নলিখিত কোডটি দেখায় যে কীভাবে একটি ResNet50 V1 FPN মডেল চিহ্নিত করা যায় model_id tensorflow-od1-ssd-resnet50-v1-fpn-640x640-coco17-tpu-8 একটি কাস্টম প্রশিক্ষণ ডেটাসেটে। প্রতিটির জন্য model_id, যাতে মাধ্যমে একটি SageMaker প্রশিক্ষণ কাজ চালু করতে মূল্নির্ধারক SageMaker Python SDK-এর ক্লাস, আপনাকে SageMaker-এ প্রদত্ত ইউটিলিটি ফাংশনের মাধ্যমে ডকার ইমেজ URI, ট্রেনিং স্ক্রিপ্ট URI, এবং প্রাক-প্রশিক্ষিত মডেল URI আনতে হবে। প্রশিক্ষণ স্ক্রিপ্ট URI-তে ডেটা প্রসেসিং, প্রাক-প্রশিক্ষিত মডেল লোড করা, মডেল প্রশিক্ষণ এবং অনুমানের জন্য প্রশিক্ষিত মডেল সংরক্ষণের জন্য প্রয়োজনীয় সমস্ত কোড রয়েছে। প্রাক-প্রশিক্ষিত মডেল URI-তে প্রাক-প্রশিক্ষিত মডেল আর্কিটেকচারের সংজ্ঞা এবং মডেল প্যারামিটার রয়েছে। নোট করুন যে ডকার ইমেজ ইউআরআই এবং ট্রেনিং স্ক্রিপ্ট ইউআরআই সমস্ত টেনসরফ্লো অবজেক্ট ডিটেকশন মডেলের জন্য একই। প্রাক-প্রশিক্ষিত মডেল URI নির্দিষ্ট মডেলের জন্য নির্দিষ্ট। প্রাক-প্রশিক্ষিত মডেল টারবলগুলি টেনসরফ্লো থেকে প্রি-ডাউনলোড করা হয়েছে এবং উপযুক্ত মডেল স্বাক্ষর সহ সংরক্ষণ করা হয়েছে আমাজন সিম্পল স্টোরেজ সার্ভিস (Amazon 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)

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

টেনসরফ্লো অবজেক্ট ডিটেকশন অ্যালগরিদমের জন্য ইনপুট/আউটপুট ইন্টারফেস

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

  • ইনপুট - সাব-ডিরেক্টরি ইমেজ এবং একটি ফাইল সহ একটি ডিরেক্টরি 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 থেকে একটি প্রাক-প্রশিক্ষিত মডেল ব্যবহার করে একটি কাস্টম ডেটাসেটে ট্রান্সফার লার্নিং কীভাবে করতে হয় তার উদাহরণ কোড দিয়েছি।

আরও তথ্যের জন্য, চেক আউট ডকুমেন্টেশন এবং উদাহরণ নোটবুক.


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

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্সে TensorFlow অবজেক্ট ডিটেকশন মডেলের জন্য ট্রান্সফার লার্নিং। উল্লম্ব অনুসন্ধান. আ.বিবেক মদন ড সঙ্গে একজন ফলিত বিজ্ঞানী অ্যামাজন সেজমেকার জাম্পস্টার্ট দল. তিনি আরবানা-চ্যাম্পেইনের ইলিনয় বিশ্ববিদ্যালয় থেকে তার পিএইচডি পেয়েছিলেন এবং জর্জিয়া টেকের পোস্ট ডক্টরাল গবেষক ছিলেন। তিনি মেশিন লার্নিং এবং অ্যালগরিদম ডিজাইনের একজন সক্রিয় গবেষক এবং EMNLP, ICLR, COLT, FOCS এবং SODA কনফারেন্সে গবেষণাপত্র প্রকাশ করেছেন।

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্সে TensorFlow অবজেক্ট ডিটেকশন মডেলের জন্য ট্রান্সফার লার্নিং। উল্লম্ব অনুসন্ধান. আ.জোয়াও মৌরা অ্যামাজন ওয়েব সার্ভিসেসের একজন এআই/এমএল বিশেষজ্ঞ সলিউশন আর্কিটেক্ট। তিনি বেশিরভাগ ক্ষেত্রে এনএলপি ব্যবহারের ক্ষেত্রে এবং গ্রাহকদের গভীর শিক্ষার মডেল প্রশিক্ষণ এবং স্থাপনাকে অপ্টিমাইজ করতে সহায়তা করে। তিনি লো-কোড এমএল সমাধান এবং এমএল-বিশেষ হার্ডওয়্যারের সক্রিয় প্রবক্তা।

Amazon SageMaker PlatoBlockchain ডেটা ইন্টেলিজেন্সে TensorFlow অবজেক্ট ডিটেকশন মডেলের জন্য ট্রান্সফার লার্নিং। উল্লম্ব অনুসন্ধান. আ.আশিস খেতান ড সঙ্গে একজন সিনিয়র ফলিত বিজ্ঞানী Amazon SageMaker বিল্ট-ইন অ্যালগরিদম এবং মেশিন লার্নিং অ্যালগরিদম বিকাশে সহায়তা করে। তিনি ইউনিভার্সিটি অফ ইলিনয় আরবানা চ্যাম্পেইন থেকে পিএইচডি লাভ করেন। তিনি মেশিন লার্নিং এবং পরিসংখ্যানগত অনুমানের একজন সক্রিয় গবেষক এবং NeurIPS, ICML, ICLR, JMLR, ACL, এবং EMNLP সম্মেলনে অনেক গবেষণাপত্র প্রকাশ করেছেন।

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

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