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ğinderun
. -
tf.keras
modelini içeren bir not defteri komut dosyasındarun
. En yaygın yol, bir not defterinderun
kullanmaktır.
entry_point
bir (a'ya giden yol) Python betiği veya not defteri dosyasıdır veya None
. None
geçerli Dosyanın tamamı Google Cloud'a gönderilir.
Bir Python dosyasını entry_point
olarak kullanmak.
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.
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:
- Keras betiği/dizüstü bilgisayar, bulut ve dağıtım gibi kod varlıklarını hazır hale getirme.
- Bu dağıtım varlığını gerekli bağımlılıklara sahip bir liman işçisi kapsayıcısına dönüştürme.
- Bu kapsayıcıyı uygun ölçekte dağıtın ve TensorFlow dağıtım stratejilerini kullanarak eğitin.
- 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.