Kullanım kılavuzu

tfc.run API, modellerinizi GCP'de geniş ölçekte eğitmenize olanak tanır.

tfc.run API'si dört farklı şekilde kullanılabilir. Bu, API'yi çalıştırdığınız yere (Python betiği vs Python not defteri) ve entry_point parametrenize göre tanımlanır:

  • Python dosyası entry_point olarak.
  • entry_point olarak not defteri dosyası.
  • tf.keras modelini içeren bir Python betiğinde run .
  • tf.keras modelini içeren bir not defteri komut dosyasında run . En yaygın yol, bir not defterinde run kullanmaktır.

entry_point bir (a'ya giden yol) Python betiği veya not defteri dosyasıdır veya None . None yoksa mevcut Dosyanın tamamı Google Cloud'a gönderilir.

Bir Python dosyasını entry_point olarak kullanma.

tf.keras modeliniz bir python dosyasında ( mnist_example.py ) varsa, modelinizi GCP'de ölçeklendirmek için aşağıdaki basit komut dosyasını ( scale_mnist.py ) yazabilirsiniz.

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

Lütfen, entry_point ile aynı dizin ağacındaki tüm dosyaların, oluşturulan docker görüntüsünde, entry_point dosyasıyla birlikte paketleneceğini unutmayın. Görüntü oluşturma sürelerini optimize etmek için her bulut projesini barındıracak, gerekli dosyaları içeren ve başka hiçbir şeyi içermeyen yeni bir dizin oluşturmanız önerilir.

Bir not defteri dosyasını entry_point olarak kullanma.

Bir not defteri dosyasında ( mnist_example.ipynb ) tf.keras modeliniz varsa modelinizi GCP'de ölçeklendirmek için aşağıdaki basit komut dosyasını ( scale_mnist.py ) yazabilirsiniz.

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

Lütfen, entry_point ile aynı dizin ağacındaki tüm dosyaların, oluşturulan docker görüntüsünde, entry_point dosyasıyla birlikte paketleneceğini unutmayın. Yukarıdaki python betiği entry_point gibi, görüntü oluşturma sürelerini optimize etmek için her bulut projesini barındıracak, gerekli dosyaları içeren ve başka hiçbir şeyi içermeyen yeni bir dizin oluşturmanızı önerdik.

tf.keras modelini içeren bir Python betiğinde run kullanma.

run API'sini, tf.keras modelini ( mnist_scale.py ) içeren python dosyanızın içinden kullanabilirsiniz. Bu kullanım durumunda entry_point None olmalıdır. run API'si herhangi bir yerden çağrılabilir ve dosyanın tamamı uzaktan yürütülür. API, hata ayıklama amacıyla betiği yerel olarak çalıştırmak için sonunda çağrılabilir (muhtemelen daha az dönem ve diğer işaretlerle).

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 betiğiyle aynı dizin ağacındaki tüm dosyaların, python dosyasıyla birlikte oluşturulan docker görüntüsünde paketleneceğini lütfen unutmayın. Görüntü oluşturma sürelerini optimize etmek için her bulut projesini barındıracak, gerekli dosyaları içeren ve başka hiçbir şeyi içermeyen yeni bir dizin oluşturmanız önerilir.

tf.keras modelini içeren bir not defteri komut dosyasında run kullanma.

Colab'ın resmi

Bu kullanım durumunda, yapının depolanıp yayınlanabilmesini sağlamak için entry_point None olmalı ve docker_config.image_build_bucket belirtilmelidir.

run çağırdığınızda ne olur?

API çağrısı aşağıdakileri gerçekleştirecektir:

  1. Keras betiği/dizüstü bilgisayar, bulut ve dağıtım gibi kod varlıklarını hazır hale getirme.
  2. Bu dağıtım varlığını gerekli bağımlılıklara sahip bir liman işçisi konteynerine dönüştürme.
  3. Bu kapsayıcıyı uygun ölçekte dağıtın ve TensorFlow dağıtım stratejilerini kullanarak eğitin.
  4. Günlükleri barındırılan TensorBoard'da yayınlayın ve izleyin, kontrol noktası depolamasını yönetin.

Varsayılan olarak, Docker görüntüleri oluşturmak ve Google kapsayıcı kayıt defterinde yayınlamak için yerel Docker arka plan programı. Resimler gcr.io/your-gcp-project-id adresinde yayınlanır. docker_config.image_build_bucket belirtirseniz docker görüntüleri oluşturmak ve yayınlamak için Google Cloud derlemesini kullanırız.

Google AI platformu, Docker görüntülerini Google Cloud'a dağıtmak için kullanılır.