העברת למידה עבור דגמי סיווג תמונות של TensorFlow באמזון SageMaker

אמזון SageMaker מספק סוויטה של אלגוריתמים מובנים, מודלים שהוכשרו מראש, ו תבניות פתרונות מובנות מראש כדי לעזור למדעני נתונים ולמתרגלים למידת מכונה (ML) להתחיל בהדרכה ובפריסה של מודלים של ML במהירות. אתה יכול להשתמש באלגוריתמים ובמודלים אלה עבור למידה מפוקחת ובלתי מפוקחת. הם יכולים לעבד סוגים שונים של נתוני קלט, כולל טבלה, תמונה וטקסט.

החל מהיום, SageMaker מספקת אלגוריתם מובנה חדש לסיווג תמונות: סיווג תמונה - TensorFlow. זהו אלגוריתם למידה מפוקח התומך בלמידה של העברה עבור מודלים רבים שהוכשרו מראש הזמינים ב TensorFlow Hub. זה לוקח תמונה כקלט ומוציא הסתברות עבור כל אחת מתוויות המחלקה. אתה יכול לכוונן עדין את המודלים שהוכשרו מראש באמצעות למידת העברה גם כאשר מספר רב של תמונות אימון אינן זמינות. זה זמין דרך SageMaker אלגוריתמים מובנים כמו גם דרך ממשק המשתמש של SageMaker JumpStart בתוך סטודיו SageMaker של אמזון. למידע נוסף, עיין בתיעוד שלה סיווג תמונה - TensorFlow והמחברת לדוגמה מבוא ל- SageMaker TensorFlow – סיווג תמונה.

סיווג תמונות עם TensorFlow ב- SageMaker מספק למידת העברה בדגמים רבים שהוכשרו מראש הזמינים ב- TensorFlow Hub. על פי מספר תוויות הכיתה בנתוני ההדרכה, מוצמדת שכבת סיווג לדגם TensorFlow Hub שהוכשר מראש. שכבת הסיווג מורכבת משכבת ​​נשירה ושכבה צפופה, שהיא שכבה מחוברת במלואה עם מסדר 2 נורמה שמתחילה עם משקלים אקראיים. לאימון המודל יש היפרפרמטרים לשיעור הנשירה של שכבת הנשירה ומקדם הסדרת L2 לשכבה הצפופה. לאחר מכן ניתן לכוונן את כל הרשת, כולל המודל שהוכשר מראש, או רק את שכבת הסיווג העליונה על פי נתוני האימון החדשים. במצב לימוד העברה זה, אתה יכול להשיג אימון אפילו עם מערך נתונים קטן יותר.

כיצד להשתמש באלגוריתם סיווג התמונות החדש של TensorFlow

סעיף זה מתאר כיצד להשתמש באלגוריתם סיווג התמונות של TensorFlow עם SageMaker Python SDK. למידע על אופן השימוש בו מממשק המשתמש של Studio, ראה SageMaker JumpStart.

האלגוריתם תומך בלמידה של העברה עבור המודלים שהוכשרו מראש המפורטים ב דגמי TensorFlow Hub. כל דגם מזוהה באמצעות ייחודי model_id. הקוד הבא מראה כיצד לכוונן את MobileNet V2 1.00 224 המזוהה על ידי model_id tensorflow-ic-imagenet-mobilenet-v2-100-224-classification-4 על מערך אימון מותאם אישית. לכל אחד model_id, על מנת להשיק משרת הדרכה של SageMaker דרך ה מעריך מחלקה של SageMaker Python SDK, עליך להביא את ה-URI של התמונה של Docker, ה-URI של סקריפט האימון ו-URI המודל שעבר הכשרה מראש דרך פונקציות השירות הניתנות ב-SageMaker. תסריט האימון URI מכיל את כל הקוד הדרוש לעיבוד נתונים, טעינת המודל שהוכשר מראש, אימון מודלים ושמירת המודל המאומן להסקת מסקנות. ה-URI של המודל שהוכשר מראש מכיל את הגדרת ארכיטקטורת המודל שהוכשר מראש ואת פרמטרי המודל. שימו לב שה-URI של התמונה של Docker ו-URI של סקריפט האימון זהים עבור כל דגמי סיווג התמונות של TensorFlow. URI המודל שהוכשר מראש הוא ספציפי לדגם המסוים. כדורי הדגם המאומנים מראש הורדו מראש מ- TensorFlow Hub ונשמרו עם חתימת הדגם המתאימה ב- שירות אחסון פשוט של אמזון (Amazon 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,
)

לאחר מכן, להעברת למידה במערך הנתונים המותאם אישית שלך, ייתכן שיהיה עליך לשנות את ערכי ברירת המחדל של ההיפרפרמטרים של האימון, המפורטים ב- היפרפרמטרים. אתה יכול להביא מילון Python של ההיפרפרמטרים האלה עם ערכי ברירת המחדל שלהם על ידי קריאה 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 תחת רישיון Apache 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}"

לבסוף, כדי להשיק את עבודת ההדרכה של SageMaker לכוונון עדין של הדגם, התקשר .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 להעברת למידה על מערך נתונים מותאם אישית, פרוס את המודל המכוונן עדין, הרץ מסקנות על המודל שנפרס ופריסה את המודל המאומן מראש כפי שהוא ללא כוונון עדין ראשון במערך נתונים מותאם אישית, עיין במחברת לדוגמה הבאה: מבוא ל- SageMaker TensorFlow – סיווג תמונה.

ממשק קלט/פלט עבור אלגוריתם סיווג התמונות TensorFlow

אתה יכול לכוונן כל אחד מהדגמים שהוכשרו מראש המפורטים ב דגמי TensorFlow Hub לכל מערך נתונים נתון הכולל תמונות השייכות לכל מספר של מחלקות. המטרה היא למזער שגיאות חיזוי בנתוני הקלט. ניתן לפרוס עוד יותר את הדגם המוחזר על ידי כוונון עדין להסקת מסקנות. להלן ההוראות כיצד יש לעצב את נתוני האימון לצורך קלט למודל:

  • קֶלֶט – ספרייה עם מספר ספריות משנה כמו מספר המחלקות. כל ספריית משנה צריכה לכלול תמונות השייכות למחלקה זו בפורמט .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, אז המודל מוציא רק הסתברויות. לפרטים נוספים על אימון והסקת מסקנות, עיין במחברת לדוגמה מבוא ל- SageMaker TensorFlow – סיווג תמונה.

השתמש באלגוריתמים מובנים של SageMaker דרך ממשק המשתמש של JumpStart

אתה יכול גם להשתמש בסיווג תמונות SageMaker TensorFlow ובכל אחד מהאלגוריתמים המובנים האחרים בכמה לחיצות דרך ממשק המשתמש של JumpStart. JumpStart היא תכונה של SageMaker המאפשרת לך לאמן ולפרוס אלגוריתמים מובנים ומודלים מאומנים מראש ממסגרות ML שונות ומרכזי מודלים באמצעות ממשק גרפי. זה גם מאפשר לך לפרוס פתרונות ML מלאים המחברים מודלים של ML ושירותי AWS שונים אחרים כדי לפתור מקרה שימוש ממוקד. לבדוק הפעל סיווג טקסט עם Amazon SageMaker JumpStart באמצעות דגמי TensorFlow Hub ו-Huging Face כדי לגלות כיצד להשתמש ב-JumpStart כדי לאמן אלגוריתם או מודל מאומן מראש בכמה קליקים.

סיכום

בפוסט זה, הכרזנו על השקת האלגוריתם המובנה של סיווג התמונות SageMaker TensorFlow. סיפקנו קוד לדוגמה כיצד לבצע למידה של העברה על מערך נתונים מותאם אישית באמצעות מודל מאומן מראש מ- TensorFlow Hub באמצעות אלגוריתם זה. למידע נוסף, בדוק תיעוד ו מחברת דוגמה.


על המחברים

העברת למידה עבור דגמי סיווג תמונות של TensorFlow באמזון SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ד"ר אשיש חתן הוא מדען יישומי בכיר עם אלגוריתמים מובנים של Amazon SageMaker ומסייע בפיתוח אלגוריתמים של למידת מכונה. הוא קיבל את הדוקטורט שלו מאוניברסיטת אילינוי אורבנה-שמפיין. הוא חוקר פעיל בלמידת מכונה והסקה סטטיסטית, ופרסם מאמרים רבים בכנסים NeurIPS, ICML, ICLR, JMLR, ACL ו-EMNLP.

העברת למידה עבור דגמי סיווג תמונות של TensorFlow באמזון SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ד"ר Vivek Madan הוא מדען יישומי עם צוות אמזון SageMaker JumpStart. הוא קיבל את הדוקטורט שלו מאוניברסיטת אילינוי אורבנה-שמפיין והיה חוקר פוסט דוקטורט בג'ורג'יה טק. הוא חוקר פעיל בלמידת מכונה ועיצוב אלגוריתמים, ופרסם מאמרים בכנסים של EMNLP, ICLR, COLT, FOCS ו-SODA.

העברת למידה עבור דגמי סיווג תמונות של TensorFlow באמזון SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ז'ואאו מורה הוא אדריכל פתרונות AI/ML מומחה בשירותי האינטרנט של אמזון. הוא מתמקד בעיקר במקרים של שימוש ב-NLP ובעזרה ללקוחות לייעל אימון ופריסה של מודל למידה עמוקה. הוא גם חסיד פעיל של פתרונות ML בעלי קוד נמוך וחומרה מתמחה ב-ML.

העברת למידה עבור דגמי סיווג תמונות של TensorFlow באמזון SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.ראג'ו פנמאצ'ה הוא אדריכל פתרונות מומחים בכיר AI / ML מומחה ב- AWS. הוא עובד עם לקוחות חינוך, ממשלה ועמותות בפרויקטים הקשורים ללימוד מכונה ובינה מלאכותית ועוזר להם לבנות פתרונות באמצעות AWS. כשלא עוזר ללקוחות, הוא אוהב לנסוע למקומות חדשים.

בול זמן:

עוד מ למידת מכונות AWS