Kode pelatihan Anda dapat dikemas ke dalam komponen pelatihan kustom dan dijalankan dalam tugas pipeline. Log TensorBoard di-streaming secara otomatis ke eksperimen Vertex AI TensorBoard Anda. Anda dapat menggunakan integrasi ini untuk memantau pelatihan secara mendekati real-time saat Vertex AI TensorBoard mengalirkan log Vertex AI TensorBoard yang ditulis ke Cloud Storage.
Untuk penyiapan awal, lihat Menyiapkan Vertex AI TensorBoard.
Perubahan pada skrip pelatihan Anda
Skrip pelatihan Anda harus dikonfigurasi untuk menulis log TensorBoard ke bucket Cloud Storage, tempat Vertex AI Training Service akan otomatis tersedia melalui variabel lingkungan yang telah ditetapkan, yaitu AIP_TENSORBOARD_LOG_DIR
.
Hal ini biasanya dapat dilakukan dengan menyediakan os.environ['AIP_TENSORBOARD_LOG_DIR']
sebagai direktori log bagi API penulisan log TensorBoard open source. Lokasi
AIP_TENSORBOARD_LOG_DIR
biasanya ditetapkan dengan variabel
staging_bucket
.
Untuk mengonfigurasi skrip pelatihan di TensorFlow 2.x, buat callback
TensorBoard dan tetapkan variabel log_dir
ke os.environ['AIP_TENSORBOARD_LOG_DIR']
Callback TensorBoard kemudian disertakan dalam daftar callback
model.fit
TensorFlow.
tensorboard_callback = tf.keras.callbacks.TensorBoard( log_dir=os.environ['AIP_TENSORBOARD_LOG_DIR'], histogram_freq=1 ) model.fit( x=x_train, y=y_train, epochs=epochs, validation_data=(x_test, y_test), callbacks=[tensorboard_callback], )
Pelajari lebih lanjut cara Vertex AI menetapkan variabel lingkungan di lingkungan pelatihan kustom Anda.
Mem-build dan menjalankan pipeline
Contoh berikut menunjukkan cara mem-build dan menjalankan pipeline menggunakan paket Kubeflow Pipelines DSL. Untuk contoh lainnya dan detail tambahan, lihat dokumentasi Vertex AI Pipelines.
Membuat komponen pelatihan
Kemas kode pelatihan Anda ke dalam komponen kustom, pastikan kode tersebut dikonfigurasi untuk menulis log TensorBoard ke bucket Cloud Storage. Untuk contoh lainnya, lihat Mem-build komponen pipeline Anda sendiri.
from kfp.v2.dsl import component
@component(
base_image="tensorflow/tensorflow:latest",
packages_to_install=["tensorflow_datasets"],
)
def train_tensorflow_model_with_tensorboard():
import datetime, os
import tensorflow as tf
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
def create_model():
return tf.keras.models.Sequential(
[
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(512, activation="relu"),
]
)
model = create_model()
model.compile(
optimizer="adam",
loss="sparse_categorical_crossentropy",
metrics=["accuracy"]
)
tensorboard_callback = tf.keras.callbacks.TensorBoard(
log_dir=os.environ['AIP_TENSORBOARD_LOG_DIR'],
histogram_freq=1
)
model.fit(
x=x_train,
y=y_train,
epochs=5,
validation_data=(x_test, y_test),
callbacks=[tensorboard_callback],
)
Membuat dan mengompilasi pipeline
Buat tugas pelatihan kustom dari komponen yang telah Anda buat dengan menentukan spec komponen di create_custom_training_job_op_from_component
.
Tetapkan tensorboard_resource_name
ke instance TensorBoard Anda, dan staging_bucket
ke lokasi untuk mem-build artefak selama panggilan API (termasuk log TensorBoard).
Kemudian, build pipeline untuk menyertakan tugas ini dan kompilasi pipeline ke file JSON.
Untuk contoh dan informasi selengkapnya, lihat Komponen tugas kustom dan Mem-build pipeline.
from kfp.v2 import compiler
from google_cloud_pipeline_components.v1.custom_job.utils import \
create_custom_training_job_op_from_component
from kfp.v2 import dsl
def create_tensorboard_pipeline_sample(
project, location, staging_bucket, display_name, service_account, experiment, tensorboard_resource_name
):
@dsl.pipeline(
pipeline_root=f"{staging_bucket}/pipeline_root",
name=display_name,
)
def pipeline():
custom_job_op = create_custom_training_job_op_from_component(
component_spec=train_tensorflow_model_with_tensorboard,
tensorboard=tensorboard_resource_name,
base_output_directory=staging_bucket,
service_account=service_account,
)
custom_job_op(project=project, location=location)
compiler.Compiler().compile(
pipeline_func=pipeline, package_path=f"{display_name}.json"
)
Mengirimkan pipeline Vertex AI
Kirim pipeline Anda menggunakan Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Menjalankan pipeline.
Python
experiment_name
: Berikan nama untuk eksperimen Anda.pipeline_job_display_name
: Nama tampilan untuk tugas pipeline.template_path
: Jalur ke template pipeline yang dikompilasi.pipeline_root
: Tentukan Cloud Storage URI yang dapat diakses oleh akun layanan pipeline Anda. Artefak operasi pipeline Anda disimpan dalam root pipeline.parameter_values
: Parameter pipeline yang akan diteruskan ke operasi ini. Misalnya, buatdict()
dengan nama parameter sebagai kunci kamus dan nilai parameter sebagai nilai kamus.project
: Project ID Anda. Project Google Cloud tempat pipeline dijalankan. Anda dapat menemukan ID di halaman sambutan konsol Google Cloud.
location
: Lokasi untuk menjalankan pipeline. Lokasi ini harus sama dengan lokasi instance TensorBoard yang Anda gunakan.
Langkah selanjutnya
- Lihat hasil Anda: Melihat TensorBoard untuk Vertex AI Pipelines.
- Pelajari cara mengoptimalkan performa tugas pelatihan kustom Anda menggunakan Cloud Profiler.