Panduan penggunaan

API tfc.run memungkinkan Anda melatih model dalam skala besar di GCP.

API tfc.run dapat digunakan dalam empat cara berbeda. Ini ditentukan oleh tempat Anda menjalankan API (skrip Python vs notebook Python), dan parameter entry_point Anda:

  • File python sebagai entry_point .
  • File buku catatan sebagai entry_point .
  • run dalam skrip Python yang berisi model tf.keras .
  • run dalam skrip notebook yang berisi model tf.keras . Cara yang paling umum adalah dengan menggunakan run di dalam notebook.

entry_point adalah (jalur ke) skrip Python atau file buku catatan, atau None . Jika None , seluruh File saat ini dikirim ke Google Cloud.

Menggunakan file Python sebagai entry_point .

Jika Anda memiliki model tf.keras dalam file python ( mnist_example.py ), Anda dapat menulis skrip sederhana berikut ( scale_mnist.py ) untuk menskalakan model Anda di GCP.

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

Harap dicatat bahwa semua file di pohon direktori yang sama dengan entry_point akan dikemas dalam gambar buruh pelabuhan yang dibuat, bersama dengan file entry_point . Disarankan untuk membuat direktori baru untuk menampung setiap proyek cloud yang mencakup file-file yang diperlukan dan tidak ada yang lain, untuk mengoptimalkan waktu pembuatan gambar.

Menggunakan file buku catatan sebagai entry_point .

Jika Anda memiliki model tf.keras di file notebook ( mnist_example.ipynb ), Anda dapat menulis skrip sederhana berikut ( scale_mnist.py ) untuk menskalakan model Anda di GCP.

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

Harap dicatat bahwa semua file di pohon direktori yang sama dengan entry_point akan dikemas dalam gambar buruh pelabuhan yang dibuat, bersama dengan file entry_point . Seperti skrip python entry_point di atas, kami merekomendasikan untuk membuat direktori baru untuk menampung setiap proyek cloud yang mencakup file-file yang diperlukan dan tidak ada yang lain, untuk mengoptimalkan waktu pembuatan gambar.

Menggunakan run dalam skrip Python yang berisi model tf.keras .

Anda dapat menggunakan run API dari dalam file python Anda yang berisi model tf.keras ( mnist_scale.py ). Dalam kasus penggunaan ini, entry_point harusnya None . API run dapat dipanggil di mana saja dan seluruh file akan dieksekusi dari jarak jauh. API dapat dipanggil di akhir untuk menjalankan skrip secara lokal untuk tujuan debugging (mungkin dengan epoch yang lebih sedikit dan tanda lainnya).

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)

Harap dicatat bahwa semua file di pohon direktori yang sama dengan skrip python akan dikemas dalam gambar buruh pelabuhan yang dibuat, bersama dengan file python. Disarankan untuk membuat direktori baru untuk menampung setiap proyek cloud yang mencakup file-file yang diperlukan dan tidak ada yang lain, untuk mengoptimalkan waktu pembuatan gambar.

Menggunakan run dalam skrip notebook yang berisi model tf.keras .

Gambar colab

Dalam kasus penggunaan ini, entry_point harus berupa None dan docker_config.image_build_bucket harus ditentukan, untuk memastikan build dapat disimpan dan dipublikasikan.

Apa yang terjadi ketika Anda memanggil run ?

Panggilan API akan mencapai hal berikut:

  1. Membuat entitas kode seperti skrip/notebook Keras, cloud, dan distribusi siap .
  2. Mengubah entitas distribusi ini menjadi wadah buruh pelabuhan dengan dependensi yang diperlukan.
  3. Terapkan container ini dalam skala besar dan latih menggunakan strategi distribusi TensorFlow.
  4. Streaming log dan pantau di TensorBoard yang dihosting, kelola penyimpanan pos pemeriksaan.

Secara default, daemon Docker lokal untuk membuat dan menerbitkan image Docker ke registri container Google. Gambar dipublikasikan ke gcr.io/your-gcp-project-id . Jika Anda menentukan docker_config.image_build_bucket , kami akan menggunakan Google Cloud build untuk membuat dan memublikasikan image buruh pelabuhan.

Platform Google AI digunakan untuk menerapkan image Docker di Google Cloud.