מדריך לשימוש

ה-API tfc.run מאפשר לך לאמן את המודלים שלך בקנה מידה ב-GCP.

ניתן להשתמש ב-API tfc.run בארבע דרכים שונות. זה מוגדר לפי המקום שבו אתה מריץ את ה-API (סקריפט Python לעומת מחברת Python), ופרמטר entry_point שלך:

  • קובץ Python כ- entry_point .
  • קובץ מחברת כנקודת entry_point .
  • run בתוך סקריפט Python המכיל את המודל tf.keras .
  • run בתוך סקריפט מחברת המכיל את המודל tf.keras . הדרך הנפוצה ביותר היא להשתמש run בתוך מחברת.

entry_point היא (נתיב לסקריפט של Python או קובץ מחברת, או None . אם None , כל הקובץ הנוכחי נשלח אל Google Cloud.

שימוש בקובץ Python כ- entry_point .

אם יש לך מודל tf.keras שלך בקובץ python ( mnist_example.py ), אז אתה יכול לכתוב את הסקריפט הפשוט הבא ( scale_mnist.py ) כדי לשנות את קנה המידה של המודל שלך ב-GCP.

import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.py')

שימו לב שכל הקבצים באותו עץ ספריות כמו entry_point ייארזו בתמונת ה-docker שנוצרה, יחד עם קובץ entry_point . מומלץ ליצור ספרייה חדשה שתכיל כל פרויקט ענן הכוללת קבצים נחוצים ותו לא, כדי לייעל את זמני בניית התמונה.

שימוש בקובץ מחברת כנקודת entry_point .

אם יש לך מודל tf.keras שלך בקובץ מחברת ( mnist_example.ipynb ), אז אתה יכול לכתוב את הסקריפט הפשוט הבא ( scale_mnist.py ) כדי לשנות את קנה המידה של המודל שלך ב-GCP.

import tensorflow_cloud as tfc
tfc.run(entry_point='mnist_example.ipynb')

שימו לב שכל הקבצים באותו עץ ספריות כמו entry_point ייארזו בתמונת ה-docker שנוצרה, יחד עם קובץ entry_point . בדומה לסקריפט python entry_point לעיל, המלצנו ליצור ספרייה חדשה שתכיל כל פרויקט ענן הכוללת קבצים נחוצים ותו לא, כדי לייעל את זמני בניית התמונה.

שימוש run בתוך סקריפט Python המכיל את המודל tf.keras .

אתה יכול להשתמש ב-API run מתוך קובץ ה-python שלך שמכיל את המודל tf.keras ( mnist_scale.py ). במקרה שימוש זה, entry_point צריכה להיות None . ניתן לקרוא ל-API run בכל מקום והקובץ כולו יתבצע מרחוק. ניתן לקרוא ל-API בסוף כדי להריץ את הסקריפט באופן מקומי למטרות ניפוי באגים (אפשר עם פחות עידנים ודגלים אחרים).

import tensorflow_datasets as tfds
import tensorflow as tf
import tensorflow_cloud as tfc

tfc.run(
    entry_point=None,
    distribution_strategy='auto',
    requirements_txt='requirements.txt',
    chief_config=tfc.MachineConfig(
            cpu_cores=8,
            memory=30,
            accelerator_type=tfc.AcceleratorType.NVIDIA_TESLA_T4,
            accelerator_count=2),
    worker_count=0)

datasets, info = tfds.load(name='mnist', with_info=True, as_supervised=True)
mnist_train, mnist_test = datasets['train'], datasets['test']

num_train_examples = info.splits['train'].num_examples
num_test_examples = info.splits['test'].num_examples

BUFFER_SIZE = 10000
BATCH_SIZE = 64

def scale(image, label):
    image = tf.cast(image, tf.float32)
    image /= 255
    return image, label

train_dataset = mnist_train.map(scale).cache()
train_dataset = train_dataset.shuffle(BUFFER_SIZE).batch(BATCH_SIZE)

model = tf.keras.Sequential([
    tf.keras.layers.Conv2D(32, 3, activation='relu', input_shape=(
        28, 28, 1)),
    tf.keras.layers.MaxPooling2D(),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

model.compile(loss='sparse_categorical_crossentropy',
              optimizer=tf.keras.optimizers.Adam(),
              metrics=['accuracy'])
model.fit(train_dataset, epochs=12)

שימו לב שכל הקבצים באותו עץ ספריות כמו סקריפט python ייארזו בתמונת docker שנוצרה, יחד עם קובץ python. מומלץ ליצור ספרייה חדשה שתכיל כל פרויקט ענן הכוללת קבצים נחוצים ותו לא, כדי לייעל את זמני בניית התמונה.

שימוש run בתוך סקריפט מחברת המכיל את המודל tf.keras .

תמונה של colab

במקרה שימוש זה, entry_point צריכה להיות None ויש לציין docker_config.image_build_bucket , כדי להבטיח שניתן לאחסן ולפרסם את ה-build.

מה קורה כשאתה קורא run ?

קריאת ה-API תשיג את הדברים הבאים:

  1. הכנת ישויות קוד כגון סקריפט/מחברת של Keras, ענן והפצה .
  2. המרת ישות הפצה זו למכולת docker עם התלות הנדרשת.
  3. פרוס מיכל זה בקנה מידה ותאמן באמצעות אסטרטגיות הפצה של TensorFlow.
  4. הזרם יומני ועקוב אחריהם ב- TensorBoard המתארח, נהל אחסון נקודות ביקורת.

כברירת מחדל, הדמון המקומי של Docker לבנייה ופרסום של תמונות Docker ל-Google Container Registry. התמונות מתפרסמות בכתובת gcr.io/your-gcp-project-id . אם תציין docker_config.image_build_bucket , נשתמש ב- Google Cloud build כדי לבנות ולפרסם תמונות docker.

פלטפורמת AI של Google משמשת לפריסת תמונות Docker ב-Google Cloud.