راهنمای استفاده

tfc.run API به شما امکان می دهد مدل های خود را در مقیاس GCP آموزش دهید.

tfc.run API را می توان به چهار روش مختلف استفاده کرد. این با محل اجرای API (اسکریپت پایتون در مقابل نوت بوک پایتون) و پارامتر entry_point شما تعریف می شود:

  • فایل پایتون به عنوان entry_point .
  • فایل نوت بوک به عنوان entry_point .
  • در یک اسکریپت پایتون که شامل مدل tf.keras است run .
  • در یک اسکریپت نوت بوک که شامل مدل tf.keras است run . رایج ترین راه استفاده از run in notebook است.

entry_point یک (مسیر به a) اسکریپت پایتون یا فایل نوت بوک یا None است. اگر None ، کل فایل فعلی به Google Cloud ارسال می‌شود.

استفاده از فایل پایتون به عنوان entry_point .

اگر مدل tf.keras خود را در یک فایل پایتون ( 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 بسته‌بندی می‌شوند. مانند اسکریپت پایتون entry_point بالا، ما توصیه می‌کنیم یک فهرست جدید برای قرار دادن هر پروژه ابری ایجاد کنید که شامل فایل‌های ضروری و هیچ چیز دیگری نیست، تا زمان ساخت تصویر را بهینه کنید.

استفاده از run در اسکریپت پایتون که شامل مدل tf.keras است.

می توانید از API run از داخل فایل پایتون خود که حاوی مدل 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)

لطفاً توجه داشته باشید که همه فایل‌های موجود در درخت دایرکتوری مشابه با اسکریپت پایتون در تصویر داکر ایجاد شده به همراه فایل پایتون بسته‌بندی می‌شوند. توصیه می شود برای بهینه سازی زمان ساخت تصویر، یک دایرکتوری جدید برای قرار دادن هر پروژه ابری ایجاد کنید که شامل فایل های ضروری و هیچ چیز دیگری نیست.

استفاده از 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 برای ساخت و انتشار تصاویر داکر استفاده خواهیم کرد.

پلتفرم هوش مصنوعی گوگل برای استقرار تصاویر Docker در Google Cloud استفاده می شود.