Amazon SageMaker में TensorFlow छवि वर्गीकरण मॉडल के लिए स्थानांतरण सीखना

अमेज़न SageMaker का एक सूट प्रदान करता है अंतर्निहित एल्गोरिदम, पूर्व प्रशिक्षित मॉडल, तथा पूर्व-निर्मित समाधान टेम्पलेट्स डेटा वैज्ञानिकों और मशीन लर्निंग (एमएल) चिकित्सकों को प्रशिक्षण और एमएल मॉडल को जल्दी से तैनात करने में मदद करने के लिए। आप इन एल्गोरिदम और मॉडलों का उपयोग पर्यवेक्षित और अनुपयोगी दोनों तरह के शिक्षण के लिए कर सकते हैं। वे विभिन्न प्रकार के इनपुट डेटा को संसाधित कर सकते हैं, जिसमें सारणीबद्ध, छवि और पाठ शामिल हैं।

आज से, सेजमेकर छवि वर्गीकरण के लिए एक नया अंतर्निहित एल्गोरिथम प्रदान करता है: छवि वर्गीकरण - TensorFlow. यह एक पर्यवेक्षित शिक्षण एल्गोरिदम है जो उपलब्ध कई पूर्व-प्रशिक्षित मॉडलों के लिए स्थानांतरण सीखने का समर्थन करता है टेंसरफ्लो हब. यह इनपुट के रूप में एक छवि लेता है और प्रत्येक वर्ग लेबल के लिए संभावना को आउटपुट करता है। बड़ी संख्या में प्रशिक्षण छवियां उपलब्ध न होने पर भी आप स्थानांतरण सीखने का उपयोग करके इन पूर्व-प्रशिक्षित मॉडलों को ठीक कर सकते हैं। यह सेजमेकर के माध्यम से उपलब्ध है अंतर्निहित एल्गोरिदम साथ ही साथ सेजमेकर जम्पस्टार्ट यूआई अंदर अमेज़ॅन सैजमेकर स्टूडियो. अधिक जानकारी के लिए, इसके दस्तावेज़ीकरण देखें छवि वर्गीकरण - TensorFlow और उदाहरण नोटबुक सेजमेकर टेंसरफ्लो का परिचय - छवि वर्गीकरण.

सेजमेकर में TensorFlow के साथ छवि वर्गीकरण, TensorFlow हब में उपलब्ध कई पूर्व-प्रशिक्षित मॉडलों पर स्थानांतरण शिक्षण प्रदान करता है। प्रशिक्षण डेटा में वर्ग लेबल की संख्या के अनुसार, एक वर्गीकरण परत पूर्व-प्रशिक्षित TensorFlow हब मॉडल से जुड़ी होती है। वर्गीकरण परत में एक ड्रॉपआउट परत और एक घनी परत होती है, जो 2-मानदंड नियमितकर्ता के साथ पूरी तरह से जुड़ी हुई परत होती है जिसे यादृच्छिक भार के साथ प्रारंभ किया जाता है। मॉडल प्रशिक्षण में ड्रॉपआउट परत की ड्रॉपआउट दर और सघन परत के लिए L2 नियमितीकरण कारक के लिए हाइपरपैरामीटर हैं। फिर या तो पूर्व-प्रशिक्षित मॉडल सहित पूरे नेटवर्क, या केवल शीर्ष वर्गीकरण परत को नए प्रशिक्षण डेटा पर ठीक किया जा सकता है। इस ट्रांसफर लर्निंग मोड में, आप छोटे डेटासेट के साथ भी प्रशिक्षण प्राप्त कर सकते हैं।

नए TensorFlow छवि वर्गीकरण एल्गोरिदम का उपयोग कैसे करें

यह खंड वर्णन करता है कि TensorFlow छवि वर्गीकरण एल्गोरिथ्म का उपयोग कैसे करें सेजमेकर पायथन एसडीके. Studio UI से इसका उपयोग कैसे करें, इसकी जानकारी के लिए देखें सेजमेकर जम्पस्टार्ट.

एल्गोरिथ्म में सूचीबद्ध पूर्व-प्रशिक्षित मॉडल के लिए स्थानांतरण सीखने का समर्थन करता है TensorFlow हब मॉडल. प्रत्येक मॉडल को एक अद्वितीय . द्वारा पहचाना जाता है model_id. निम्नलिखित कोड दिखाता है कि MobileNet V2 1.00 224 द्वारा पहचाने गए को कैसे ठीक किया जाए model_id tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4 एक कस्टम प्रशिक्षण डेटासेट पर। प्रत्येक के लिए model_id, के माध्यम से एक सेजमेकर प्रशिक्षण कार्य शुरू करने के लिए क़ीमत लगानेवाला सेजमेकर पायथन एसडीके के वर्ग में, आपको सेजमेकर में प्रदान किए गए उपयोगिता कार्यों के माध्यम से डॉकर छवि यूआरआई, प्रशिक्षण स्क्रिप्ट यूआरआई, और पूर्व-प्रशिक्षित मॉडल यूआरआई लाने की आवश्यकता है। प्रशिक्षण स्क्रिप्ट URI में डेटा प्रोसेसिंग, पूर्व-प्रशिक्षित मॉडल को लोड करने, मॉडल प्रशिक्षण, और अनुमान के लिए प्रशिक्षित मॉडल को सहेजने के लिए सभी आवश्यक कोड होते हैं। पूर्व-प्रशिक्षित मॉडल URI में पूर्व-प्रशिक्षित मॉडल आर्किटेक्चर परिभाषा और मॉडल पैरामीटर शामिल हैं। ध्यान दें कि सभी TensorFlow छवि वर्गीकरण मॉडल के लिए डॉकर छवि URI और प्रशिक्षण स्क्रिप्ट URI समान हैं। पूर्व-प्रशिक्षित मॉडल यूआरआई विशेष मॉडल के लिए विशिष्ट है। पूर्व-प्रशिक्षित मॉडल टैरबॉल को TensorFlow हब से पूर्व-डाउनलोड किया गया है और उपयुक्त मॉडल हस्ताक्षर के साथ सहेजा गया है अमेज़न सरल भंडारण सेवा (अमेज़ॅन S3) बकेट, जैसे कि प्रशिक्षण कार्य नेटवर्क अलगाव में चलता है। निम्नलिखित कोड देखें:

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

model_id, model_version = "tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4", "*"
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-ic-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

इन मॉडल-विशिष्ट प्रशिक्षण कलाकृतियों के साथ, आप एक वस्तु का निर्माण कर सकते हैं क़ीमत लगानेवाला वर्ग:

# Create SageMaker Estimator instance
tf_ic_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 हाइपरपैरामीटर पर सेट है 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"

निम्न कोड S3 बकेट में होस्ट किया गया एक डिफ़ॉल्ट प्रशिक्षण डेटासेट प्रदान करता है। हम प्रदान करते हैं tf_flowers मॉडल को फाइन-ट्यूनिंग के लिए एक डिफ़ॉल्ट डेटासेट के रूप में डेटासेट। डेटासेट में पांच प्रकार के फूलों की छवियां शामिल हैं। डेटासेट से डाउनलोड किया गया है TensorFlow नीचे अपाचे 2.0 लाइसेंस.

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

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_ic_estimator.fit({"training": training_dataset_s3_path}, logs=True)

कस्टम डेटासेट पर स्थानांतरण सीखने के लिए नए SageMaker TensorFlow छवि वर्गीकरण एल्गोरिदम का उपयोग करने के तरीके के बारे में अधिक जानकारी के लिए, फ़ाइन-ट्यून मॉडल को परिनियोजित करें, परिनियोजित मॉडल पर अनुमान चलाएँ, और पहले फ़ाइन-ट्यूनिंग के बिना पूर्व-प्रशिक्षित मॉडल को तैनात करें। एक कस्टम डेटासेट पर, निम्न उदाहरण नोटबुक देखें: सेजमेकर टेंसरफ्लो का परिचय - छवि वर्गीकरण.

TensorFlow छवि वर्गीकरण एल्गोरिथ्म के लिए इनपुट/आउटपुट इंटरफ़ेस

आप में सूचीबद्ध प्रत्येक पूर्व-प्रशिक्षित मॉडल को फाइन-ट्यून कर सकते हैं TensorFlow हब मॉडल किसी दिए गए डेटासेट में किसी भी संख्या में वर्गों से संबंधित चित्र शामिल हैं। इसका उद्देश्य इनपुट डेटा पर भविष्यवाणी त्रुटि को कम करना है। फ़ाइन-ट्यूनिंग द्वारा लौटाए गए मॉडल को आगे अनुमान के लिए तैनात किया जा सकता है। मॉडल में इनपुट के लिए प्रशिक्षण डेटा को कैसे प्रारूपित किया जाना चाहिए, इसके निर्देश निम्नलिखित हैं:

  • निवेश - एक निर्देशिका जिसमें कक्षाओं की संख्या जितनी उप-निर्देशिकाएँ होती हैं। प्रत्येक उप-निर्देशिका में उस वर्ग से संबंधित चित्र .jpg, .jpeg, या .png प्रारूप में होने चाहिए।
  • उत्पादन - एक परिष्कृत मॉडल जिसे अनुमान के लिए तैनात किया जा सकता है या वृद्धिशील प्रशिक्षण का उपयोग करके आगे प्रशिक्षित किया जा सकता है। एक प्रीप्रोसेसिंग और पोस्टप्रोसेसिंग हस्ताक्षर को फाइन-ट्यून किए गए मॉडल में जोड़ा जाता है जैसे कि यह कच्ची .jpg छवि को इनपुट के रूप में लेता है और क्लास की संभावनाओं को लौटाता है। एक फ़ाइल मैपिंग क्लास इंडेक्स को क्लास लेबल के साथ मॉडल के साथ सहेजा जाता है।

यदि प्रशिक्षण डेटा में दो वर्गों की छवियां हैं, तो इनपुट निर्देशिका निम्न उदाहरण की तरह दिखनी चाहिए: roses और dandelion. S3 पथ दिखना चाहिए s3://bucket_name/input_directory/. अनुगामी नोट करें / आवश्यक है। फ़ोल्डरों के नाम और roses, dandelion, और .jpg फ़ाइल नाम कुछ भी हो सकते हैं। लेबल मैपिंग फ़ाइल जिसे S3 बकेट पर प्रशिक्षित मॉडल के साथ सहेजा गया है, मॉडल के आउटपुट की वर्ग संभावनाओं की सूची में फ़ोल्डर नाम गुलाब और सिंहपर्णी को अनुक्रमित करता है। मैपिंग फ़ोल्डर नामों के वर्णानुक्रमिक क्रम का अनुसरण करती है। निम्नलिखित उदाहरण में, मॉडल आउटपुट सूची में सूचकांक 0 से मेल खाती है dandelion, और सूचकांक 1 से मेल खाती है roses.

input_directory
    |--roses
        |--abc.jpg
        |--def.jpg
    |--dandelion
        |--ghi.jpg
        |--jkl.jpg

TensorFlow छवि वर्गीकरण एल्गोरिथ्म के साथ निष्कर्ष

उत्पन्न मॉडल को अनुमान के लिए होस्ट किया जा सकता है और एन्कोडेड .jpg, .jpeg, और .png छवि प्रारूपों का समर्थन किया जा सकता है। application/x-image सामग्री प्रकार। इनपुट छवि स्वचालित रूप से आकार बदल जाती है। आउटपुट में प्रायिकता मान, सभी वर्गों के लिए वर्ग लेबल, और उच्चतम संभावना वाले वर्ग अनुक्रमणिका के अनुरूप अनुमानित लेबल, JSON प्रारूप में एन्कोडेड होता है। TensorFlow छवि वर्गीकरण मॉडल प्रति अनुरोध एक छवि को संसाधित करता है और JSON में केवल एक पंक्ति को आउटपुट करता है। JSON में प्रतिक्रिया का एक उदाहरण निम्नलिखित है:

accept: application/json;verbose

 {"probabilities": [prob_0, prob_1, prob_2, ...],
  "labels":        [label_0, label_1, label_2, ...],
  "predicted_label": predicted_label}

If accept इसके लिए सेट है application/json, तो मॉडल केवल संभावनाओं को आउटपुट करता है। प्रशिक्षण और अनुमान के बारे में अधिक जानकारी के लिए, नमूना नोटबुक देखें सेजमेकर टेंसरफ्लो का परिचय - छवि वर्गीकरण.

जम्पस्टार्ट यूआई के माध्यम से सेजमेकर बिल्ट-इन एल्गोरिदम का उपयोग करें

आप जम्पस्टार्ट यूआई के माध्यम से कुछ क्लिक के साथ सेजमेकर टेंसरफ्लो छवि वर्गीकरण और किसी भी अन्य अंतर्निहित एल्गोरिदम का भी उपयोग कर सकते हैं। जम्पस्टार्ट एक सेजमेकर फीचर है जो आपको ग्राफिकल इंटरफेस के माध्यम से विभिन्न एमएल फ्रेमवर्क और मॉडल हब से अंतर्निहित एल्गोरिदम और पूर्व-प्रशिक्षित मॉडल को प्रशिक्षित और तैनात करने की अनुमति देता है। यह आपको पूरी तरह से विकसित एमएल समाधानों को तैनात करने की अनुमति देता है जो लक्षित उपयोग के मामले को हल करने के लिए एमएल मॉडल और विभिन्न अन्य एडब्ल्यूएस सेवाओं को एक साथ जोड़ते हैं। चेक आउट TensorFlow हब और हगिंग फेस मॉडल का उपयोग करके Amazon SageMaker जम्पस्टार्ट के साथ टेक्स्ट वर्गीकरण चलाएँ यह पता लगाने के लिए कि जम्पस्टार्ट का उपयोग कैसे करें कुछ ही क्लिक में एल्गोरिदम या पूर्व-प्रशिक्षित मॉडल को प्रशिक्षित करने के लिए।

निष्कर्ष

इस पोस्ट में, हमने SageMaker TensorFlow इमेज क्लासिफिकेशन बिल्ट-इन एल्गोरिथम के लॉन्च की घोषणा की। हमने इस एल्गोरिथम का उपयोग करके TensorFlow हब से पूर्व-प्रशिक्षित मॉडल का उपयोग करके एक कस्टम डेटासेट पर स्थानांतरण सीखने के तरीके पर उदाहरण कोड प्रदान किया है। अधिक जानकारी के लिए देखें दस्तावेज़ीकरण और उदाहरण नोटबुक.


लेखक के बारे में

Amazon SageMaker प्लेटोब्लॉकचैन डेटा इंटेलिजेंस में TensorFlow छवि वर्गीकरण मॉडल के लिए स्थानांतरण सीखना। लंबवत खोज। ऐ.डॉ आशीष खेतानी के साथ एक वरिष्ठ अनुप्रयुक्त वैज्ञानिक हैं अमेज़ॅन सेजमेकर बिल्ट-इन एल्गोरिदम और मशीन लर्निंग एल्गोरिदम विकसित करने में मदद करता है। उन्होंने इलिनोइस विश्वविद्यालय अर्बाना-शैंपेन से पीएचडी की उपाधि प्राप्त की। वह मशीन लर्निंग और सांख्यिकीय अनुमान में एक सक्रिय शोधकर्ता हैं, और उन्होंने न्यूरोआईपीएस, आईसीएमएल, आईसीएलआर, जेएमएलआर, एसीएल और ईएमएनएलपी सम्मेलनों में कई पत्र प्रकाशित किए हैं।

Amazon SageMaker प्लेटोब्लॉकचैन डेटा इंटेलिजेंस में TensorFlow छवि वर्गीकरण मॉडल के लिए स्थानांतरण सीखना। लंबवत खोज। ऐ.डॉ विवेक मदनी के साथ एक अनुप्रयुक्त वैज्ञानिक है अमेज़न सेजमेकर जम्पस्टार्ट टीम. उन्होंने इलिनोइस विश्वविद्यालय अर्बाना-शैंपेन से पीएचडी प्राप्त की और जॉर्जिया टेक में पोस्ट डॉक्टरेट शोधकर्ता थे। वह मशीन लर्निंग और एल्गोरिथम डिज़ाइन में एक सक्रिय शोधकर्ता हैं, और उन्होंने EMNLP, ICLR, COLT, FOCS और SODA सम्मेलनों में पेपर प्रकाशित किए हैं।

Amazon SageMaker प्लेटोब्लॉकचैन डेटा इंटेलिजेंस में TensorFlow छवि वर्गीकरण मॉडल के लिए स्थानांतरण सीखना। लंबवत खोज। ऐ.जोआओ मौरा Amazon वेब सर्विसेज में AI/ML स्पेशलिस्ट सॉल्यूशंस आर्किटेक्ट हैं। वह ज्यादातर एनएलपी उपयोग के मामलों पर केंद्रित है और ग्राहकों को गहन शिक्षण मॉडल प्रशिक्षण और तैनाती को अनुकूलित करने में मदद करता है। वह लो-कोड एमएल सॉल्यूशंस और एमएल-स्पेशलाइज्ड हार्डवेयर के सक्रिय प्रस्तावक भी हैं।

Amazon SageMaker प्लेटोब्लॉकचैन डेटा इंटेलिजेंस में TensorFlow छवि वर्गीकरण मॉडल के लिए स्थानांतरण सीखना। लंबवत खोज। ऐ.राजू पेनमाचा एडब्ल्यूएस में वरिष्ठ एआई/एमएल विशेषज्ञ समाधान वास्तुकार हैं। वह शिक्षा, सरकार और गैर-लाभकारी ग्राहकों के साथ मशीन लर्निंग और आर्टिफिशियल इंटेलिजेंस संबंधी परियोजनाओं पर काम करता है, जिससे उन्हें AWS का उपयोग करके समाधान बनाने में मदद मिलती है। जब वह ग्राहकों की मदद नहीं करते तो नई जगहों पर घूमना पसंद करते हैं।

समय टिकट:

से अधिक AWS मशीन लर्निंग