אימון Resnet50 ב-Cloud TPU באמצעות PyTorch

במדריך הזה מוסבר איך לאמן את מודל ResNet-50 במכשיר Cloud TPU באמצעות PyTorch. אפשר להשתמש באותו דפוס גם במודלים אחרים של סיווג תמונות שעברו אופטימיזציה ל-TPU, שמשתמשים ב-PyTorch ובמערך הנתונים ImageNet.

המודל במדריך הזה מבוסס על Deep Residual Learning for Image Recognition, שבו הוצגה לראשונה ארכיטקטורת הרשת השיורית (ResNet). במדריך הזה נעשה שימוש בגרסה עם 50 שכבות, ResNet-50, ומוצג אימון של המודל באמצעות PyTorch/XLA.

מטרות

  • מכינים את מערך הנתונים.
  • מריצים את משימת האימון.
  • בודקים את תוצאות הפלט.

עלויות

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

  • Compute Engine
  • Cloud TPU

כדי להעריך את ההוצאות בהתאם לתחזית השימוש שלכם, אתם יכולים להיעזר במחשבון העלויות.

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

לפני שמתחילים

לפני שמתחילים את המדריך הזה, חשוב לוודא שהפרויקט שלכם מוגדר בצורה נכונה. Google Cloud

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. במדריך הזה נעשה שימוש ברכיבים של Google Cloudשחלים עליהם חיובים. כדי לקבל הערכה של העלויות, אפשר לעיין בדף התמחור של Cloud TPU. כדי להימנע מחיובים מיותרים, חשוב למחוק את המשאבים שיצרתם אחרי שסיימתם להשתמש בהם.

יצירת מכונת TPU וירטואלית

  1. פותחים חלון Cloud Shell.

    פתיחת Cloud Shell

  2. יצירת מכונת TPU וירטואלית

    gcloud compute tpus tpu-vm create your-tpu-name \
    --accelerator-type=v5litepod-8 \
    --version=tpu-ubuntu2204-base \
    --zone=us-central1-a \
    --project=your-project
    Google Cloud
  3. מתחברים למכונת ה-TPU באמצעות SSH:

    gcloud compute tpus tpu-vm ssh  your-tpu-name --zone=us-central1-a
  4. מתקינים את PyTorch/XLA ב-TPU VM:

    (vm)$ pip install torch torch_xla[tpu] torchvision -f https://storage.googleapis.com/libtpu-releases/index.html -f https://storage.googleapis.com/libtpu-wheels/index.html
  5. שיבוט של מאגר GitHub של PyTorch/XLA

    (vm)$ git clone --depth=1 https://github.com/pytorch/xla.git
  6. הפעלת סקריפט האימון עם נתונים פיקטיביים

    (vm) $ PJRT_DEVICE=TPU python3 xla/test/test_train_mp_imagenet.py --fake_data --batch_size=256 --num_epochs=1

הסרת המשאבים

כדי להימנע מחיובים בחשבון Google Cloud בגלל השימוש במשאבים שנעשה במסגרת המדריך הזה, אפשר למחוק את הפרויקט שמכיל את המשאבים, או להשאיר את הפרויקט ולמחוק את המשאבים בנפרד.

  1. מתנתקים מ-TPU VM:

    (vm) $ exit

    ההנחיה אמורה להיות עכשיו username@projectname, כדי שתדעו שאתם ב-Cloud Shell.

  2. מוחקים את מכונת ה-TPU הווירטואלית.

    $ gcloud compute tpus tpu-vm delete your-tpu-name \
       --zone=us-central1-a

המאמרים הבאים