دليل الاستخدام

تسمح لك واجهة برمجة التطبيقات tfc.run بتدريب نماذجك على نطاق واسع على Google Cloud Platform.

يمكن استخدام واجهة برمجة التطبيقات tfc.run بأربع طرق مختلفة. يتم تحديد ذلك من خلال المكان الذي تقوم فيه بتشغيل واجهة برمجة التطبيقات (Python script vs Python Notebook)، ومعلمة entry_point الخاصة بك:

  • ملف بايثون كـ entry_point .
  • ملف دفتر الملاحظات كـ entry_point .
  • run ضمن برنامج Python النصي الذي يحتوي على نموذج tf.keras .
  • run ضمن برنامج نصي للمفكرة يحتوي على نموذج tf.keras . الطريقة الأكثر شيوعًا هي استخدام run داخل دفتر ملاحظات.

entry_point هي (المسار إلى) برنامج Python النصي أو ملف دفتر الملاحظات، أو None . إذا None ، فسيتم إرسال الملف الحالي بالكامل إلى Google Cloud.

استخدام ملف بايثون كـ entry_point .

إذا كان لديك نموذج tf.keras في ملف python ( mnist_example.py )، فيمكنك كتابة النص البرمجي البسيط التالي ( scale_mnist.py ) لقياس نموذجك على Google Cloud Platform.

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

يرجى ملاحظة أن جميع الملفات الموجودة في نفس شجرة الدليل مثل entry_point سيتم تجميعها في صورة عامل الإرساء التي تم إنشاؤها، جنبًا إلى جنب مع ملف entry_point . يوصى بإنشاء دليل جديد لإيواء كل مشروع سحابي يتضمن الملفات الضرورية ولا شيء آخر، لتحسين أوقات إنشاء الصورة.

استخدام ملف دفتر ملاحظات كـ entry_point .

إذا كان لديك نموذج tf.keras في ملف دفتر ملاحظات ( mnist_example.ipynb )، فيمكنك كتابة النص البرمجي البسيط التالي ( scale_mnist.py ) لقياس نموذجك على Google Cloud Platform.

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

يرجى ملاحظة أن جميع الملفات الموجودة في نفس شجرة الدليل مثل entry_point سيتم تجميعها في صورة عامل الإرساء التي تم إنشاؤها، جنبًا إلى جنب مع ملف entry_point . كما هو الحال مع برنامج python script entry_point أعلاه، نوصي بإنشاء دليل جديد لإيواء كل مشروع سحابي يتضمن الملفات الضرورية ولا شيء آخر، لتحسين أوقات إنشاء الصورة.

استخدام run ضمن برنامج Python النصي الذي يحتوي على نموذج tf.keras .

يمكنك استخدام واجهة run من داخل ملف python الذي يحتوي على نموذج tf.keras ( mnist_scale.py ). في حالة الاستخدام هذه، يجب أن تكون entry_point None . يمكن استدعاء واجهة برمجة التطبيقات 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 سيتم تجميعها في صورة عامل الإرساء التي تم إنشاؤها، بالإضافة إلى ملف python. يوصى بإنشاء دليل جديد لإيواء كل مشروع سحابي يتضمن الملفات الضرورية ولا شيء آخر، لتحسين أوقات إنشاء الصورة.

استخدام run ضمن برنامج نصي للمفكرة يحتوي على نموذج tf.keras .

صورة كولاب

في حالة الاستخدام هذه، يجب أن تكون entry_point None ويجب تحديد docker_config.image_build_bucket ، لضمان إمكانية تخزين الإصدار ونشره.

ماذا يحدث عندما تتصل run ؟

سوف ينجز استدعاء API ما يلي:

  1. جعل كيانات التعليمات البرمجية مثل برنامج Keras النصي/الكمبيوتر المحمول والسحابة والتوزيع جاهزة .
  2. تحويل كيان التوزيع هذا إلى حاوية إرساء مع التبعيات المطلوبة.
  3. انشر هذه الحاوية على نطاق واسع وتدرب باستخدام إستراتيجيات توزيع TensorFlow.
  4. دفق السجلات ومراقبتها على TensorBoard المستضاف، وإدارة تخزين نقاط التفتيش.

افتراضيًا، برنامج Docker المحلي لإنشاء صور Docker ونشرها في سجل حاوية Google. يتم نشر الصور على gcr.io/your-gcp-project-id . إذا حددت docker_config.image_build_bucket ، فسنستخدم Google Cloud build لإنشاء صور عامل الإرساء ونشرها.

يتم استخدام منصة Google AI لنشر صور Docker على Google Cloud.