تسمح لك واجهة برمجة التطبيقات 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 ما يلي:
- جعل كيانات التعليمات البرمجية مثل برنامج Keras النصي/الكمبيوتر المحمول والسحابة والتوزيع جاهزة .
- تحويل كيان التوزيع هذا إلى حاوية إرساء مع التبعيات المطلوبة.
- انشر هذه الحاوية على نطاق واسع وتدرب باستخدام إستراتيجيات توزيع TensorFlow.
- دفق السجلات ومراقبتها على TensorBoard المستضاف، وإدارة تخزين نقاط التفتيش.
افتراضيًا، برنامج Docker المحلي لإنشاء صور Docker ونشرها في سجل حاوية Google. يتم نشر الصور على gcr.io/your-gcp-project-id
. إذا حددت docker_config.image_build_bucket
، فسنستخدم Google Cloud build لإنشاء صور عامل الإرساء ونشرها.
يتم استخدام منصة Google AI لنشر صور Docker على Google Cloud.