ה-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
.
במקרה שימוש זה, entry_point
צריכה להיות None
ויש לציין docker_config.image_build_bucket
, כדי להבטיח שניתן לאחסן ולפרסם את ה-build.
מה קורה כשאתה קורא run
?
קריאת ה-API תשיג את הדברים הבאים:
- הכנת ישויות קוד כגון סקריפט/מחברת של Keras, ענן והפצה .
- המרת ישות הפצה זו למכולת docker עם התלות הנדרשת.
- פרוס קונטיינר זה בקנה מידה ואימון באמצעות אסטרטגיות הפצה של TensorFlow.
- הזרם יומני ועקוב אחריהם ב- 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.